StyleBook-Konfiguration

Verwenden Sie APIs, um ein vorhandenes Konfigurationspaket zu aktualisieren

Sie können die StyleBook-API verwenden, um die vorhandenen Konfigurationspakete in NetScaler Console zu aktualisieren.

PUT: https://<ADM-endpoint-name>/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) mithilfe der API zur Stellenabfrage verfolgen:

GET: https://<ADM-endpoint-name>/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 einen Fehler 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-->

Verwenden Sie APIs, um Zielinstanzen zu aktualisieren

Ändern Sie in der Nutzlast des Update-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 Nutzlast 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 das Update 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 das Objekt targets beispielsweise, wenn ein NetScaler zur Wartung aus einer Konfiguration entfernt werden muss.

Hinweis

Verwenden Sie ein leeres Objekt targets, um eine Konfiguration aus allen aktuellen Zielinstanzen zu entfernen. Die NetScaler Console-Konfiguration wird beibehalten, aber sie wird aus allen NetScalern entfernt, auf denen sie zuvor bereitgestellt wurde. Sie können die Konfiguration erneut aktualisieren, um bei Bedarf ein oder mehrere Ziele anzugeben.

Das folgende API-Beispiel entfernt die Konfiguration aus all ihren vorhandenen Zielen:

PUT: https://<ADM-endpoint-name>/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-->
Verwenden Sie APIs, um ein vorhandenes Konfigurationspaket zu aktualisieren