API を使用して既存の構成パックを更新する
StyleBook APIを使用して、NetScalerコンソールの既存の構成パックを更新できます。
プット: https://<ADM-endpoint-name>/stylebook/nitro/v2/config/configpacks/<configpack-ID>?mode=async
ペイロード:
{
"configpack": {
"stylebook": {
"name": "waf-adv",
"namespace": "com.citrix.adc.stylebooks",
"version": "1.3"
},
"parameters": {
"name": "TestApp1",
"lbname": "my-lbv",
"waf-settings": {
"rule": "true",
"type": [
"HTML"
],
"profile-settings": {
"logeverypolicyhit": false,
"enablesignatures": {
"signaturename": "waf-sign1"
},
"sqlinjection-settings": {
"sqlinjectionaction": [
"log",
"stats"
],
"sqlinjection-default-settings": {
"sqlinjectiontransformspecialchars": true,
"sqlinjectionchecksqlwildchars": true,
"sqlinjectiontype": "SQLSplCharANDKeyword",
"sqlinjectionparsecomments": "checkall",
"sqlinjectiongrammar": "OFF"
}
},
"bufferoverflow-settings": {
"bufferoverflowaction": [
"log"
],
"bufferoverflowmaxurllength": "2048",
"bufferoverflowmaxheaderlength": "4096",
"bufferoverflowmaxcookielength": "4096",
"bufferoverflowmaxquerylength": "65535",
"bufferoverflowmaxtotalheaderlength": "65535"
}
}
}
},
"targets": [
{
"instance_id": "1b322685-3b23-4111-a9ce-56dd1c659e4c"
}
]
}
}
<!--NeedCopy-->
HTTP ステータス 202 とジョブ ID を含むレスポンスボディが返されます。ジョブ ID を使用して、更新操作のステータスを追跡できます。
{
"job": {
"job_id": "1092579455"
}
}
<!--NeedCopy-->
このジョブ ID (この例では 1092579455) を追跡するには、ジョブポーリング API を使用します。
取得: https://<ADM-endpoint-name>/stylebook/nitro/v2/config/jobs/1092579455
応答のステータスが「完了」に設定されている場合、更新操作は正常に完了します。このフィールドのその他の値は、更新ジョブの失敗を示します。失敗の原因は progress_info オブジェクトにあります。
{
"job": {
"job_id": "4268148987",
"status": "completed",
"progress_info": [
{
"is_last": "false",
"message": "Validated the parameters",
"status": "success"
},
{
"is_last": "false",
"message": "Configuration audit completed",
"status": "success"
},
{
"is_last": "false",
"message": "Computed configuration objects",
"status": "success"
},
{
"is_last": "false",
"message": "Prepared objects for applying configuration on 192.168.153.165",
"status": "success"
},
{
"is_last": "false",
"message": "Retrieved existing data for updatable objects on instance 192.168.153.165",
"status": "success"
},
{
"is_last": "false",
"message": "Applied configuration on instance 192.168.153.165",
"status": "success"
},
{
"is_last": "false",
"message": "Retrieved data for configuration audit on instance 192.168.153.165",
"status": "success"
},
{
"is_last": "false",
"message": "Logged out from instance 192.168.153.165",
"status": "success"
},
{
"is_last": "true",
"message": "Saved configpack.",
"status": "completed"
}
],
"result": {
"status": "completed",
"id": "4268148987",
"config_key": "4268148987",
"created_by": "nsroot",
"created_datetime": "2023-01-20 18:57:58.985435",
"created_datetimestamp": "2023-01-20 18:57:58",
"last_modified_by": "nsroot",
"last_modified_datetime": "2023-01-20 19:00:32",
"name": "sample-dns-stylebook",
"namespace": "com.citrix.adc.tests",
"version": "1.0"
}
}
}
<!--NeedCopy-->
API を使用してターゲットインスタンスを更新する
構成パックの更新ペイロードで、 targets
セクションを変更してNetScaler ADC インスタンスを追加、削除、または置換します。
例:
次の例では、ペイロード内のtargets
オブジェクトを変更して、新しいターゲット NetScaler を構成に追加します。
{
"targets": [
{
"instance_id": "<Existing-ADC-instance-ID>"
},
{
"instance_id": "<New-ADC-instance-ID>"
}
],
}
<!--NeedCopy-->
更新が成功すると、構成は新しいNetScaler ADC インスタンスに展開されます。構成のターゲットを変更すると、アプリケーション構成をNetScaler間で移動する場合に便利です。たとえば、メンテナンスのためにNetScaler ADCを構成から削除する必要がある場合は、 targets
オブジェクトを変更します。
注
現在のすべてのターゲットインスタンスから構成を削除するには、 空の
targets
オブジェクトを使用します。NetScalerコンソールの構成は保持されますが、以前に展開されていたすべてのNetScalerから削除されます。必要に応じて、構成を再度更新して 1 つまたは複数のターゲットを指定できます。
次の API 例では、既存のすべてのターゲットから設定を削除します。
プット: https://<ADM-endpoint-name>/stylebook/nitro/v2/config/configpacks/<configpack-ID>?mode=async
ペイロード:
{
"configpack": {
"stylebook": {
"name": "waf-adv",
"namespace": "com.citrix.adc.stylebooks",
"version": "1.3"
},
"parameters": {
"name": "TestApp1",
"lbname": "my-lbv",
"waf-settings": {
"rule": "true",
"type": [
"HTML"
],
"profile-settings": {
"logeverypolicyhit": false,
"enablesignatures": {
"signaturename": "waf-sign1"
},
"sqlinjection-settings": {
"sqlinjectionaction": [
"log",
"stats"
],
"sqlinjection-default-settings": {
"sqlinjectiontransformspecialchars": true,
"sqlinjectionchecksqlwildchars": true,
"sqlinjectiontype": "SQLSplCharANDKeyword",
"sqlinjectionparsecomments": "checkall",
"sqlinjectiongrammar": "OFF"
}
},
"bufferoverflow-settings": {
"bufferoverflowaction": [
"log"
],
"bufferoverflowmaxurllength": "2048",
"bufferoverflowmaxheaderlength": "4096",
"bufferoverflowmaxcookielength": "4096",
"bufferoverflowmaxquerylength": "65535",
"bufferoverflowmaxtotalheaderlength": "65535"
}
}
}
},
"targets": []
}
}
<!--NeedCopy-->