APIs zum Aktualisieren eines vorhandenen Konfigurationspakets verwenden
Sie können die StyleBook-API verwenden, um die vorhandenen Konfigurationspakete in NetScaler Console zu aktualisieren.
PUT: https://<mas-ip>/stylebook/nitro/v2/config/configpacks/<configpack-ID>?mode=async
Payload:
{
"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-->
Ein HTTP-Status 202 und ein Antworttext mit einer Job-ID werden zurückgegeben. Sie können die Job-ID verwenden, um den Status des Aktualisierungsvorgangs zu verfolgen:
{
"job": {
"job_id": "1092579455"
}
}
<!--NeedCopy-->
Sie können diese Job-ID (in diesem Beispiel 1092579455) über die Jobs-Polling-API verfolgen:
GET: https://<mas-ip>/stylebook/nitro/v2/config/jobs/1092579455
Der Aktualisierungsvorgang ist erfolgreich abgeschlossen, wenn die Antwort den Status “completed” enthält. Jeder andere Wert in diesem Feld weist auf das Fehlschlagen des Aktualisierungsauftrags hin. Die Ursache des Fehlers ist im Objekt progress_info verfügbar.
{
"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-->
APIs zum Aktualisieren von Zielinstanzen verwenden
Ändern Sie in der Payload des aktualisierten Konfigurationspakets den Abschnitt targets, um eine NetScaler-Instanz hinzuzufügen, zu entfernen oder zu ersetzen.
Beispiel:
Im folgenden Beispiel wird das Objekt targets in der Payload geändert, um der Konfiguration einen neuen Ziel-NetScaler hinzuzufügen:
{
"targets": [
{
"instance_id": "<Existing-ADC-instance-ID>"
},
{
"instance_id": "<New-ADC-instance-ID>"
}
],
}
<!--NeedCopy-->
Wenn die Aktualisierung erfolgreich ist, wird die Konfiguration auf der neuen NetScaler-Instanz bereitgestellt. Das Ändern der Ziele einer Konfiguration ist nützlich, wenn Sie Anwendungskonfigurationen zwischen NetScalern verschieben möchten. Ändern Sie beispielsweise das Objekt targets, wenn ein NetScaler für Wartungsarbeiten aus einer Konfiguration entfernt werden muss.
Hinweis
Um eine Konfiguration von allen aktuellen Zielinstanzen zu entfernen, verwenden Sie ein leeres
targets-Objekt. Die NetScaler Console-Konfiguration bleibt erhalten, wird aber von allen NetScalern entfernt, auf denen sie zuvor bereitgestellt wurde. Sie können die Konfiguration bei Bedarf erneut aktualisieren, um ein oder mehrere Ziele anzugeben.
Das folgende API-Beispiel entfernt die Konfiguration von allen vorhandenen Zielen:
PUT: https://<mas-ip>/stylebook/nitro/v2/config/configpacks/<configpack-ID>?mode=async
Payload:
{
"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-->