Application Delivery Management

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-->
APIs zum Aktualisieren eines vorhandenen Konfigurationspakets verwenden