API zum Erstellen von Konfigurationen aus StyleBooks verwenden
Nachdem Sie Ihr StyleBook erstellt haben, müssen Sie es in NetScaler ADM importieren, um es entweder mit NetScaler ADM oder mit NetScaler ADM APIs zu verwenden. NetScaler ADM validiert Ihr StyleBook, wenn Sie es importieren. Wenn die Validierung erfolgreich ist, wird Ihr StyleBook im NetScaler ADM-Katalog von StyleBooks angezeigt und kann zum Erstellen von Konfigurationen verwendet werden.
Sie können jetzt die StyleBook-APIs verwenden, um Konfigurationen basierend auf diesem StyleBook zu erstellen. Sie können ein beliebiges Tool wie das cURL-Befehlszeilentool oder die Chrome-Browsererweiterung von Postman verwenden, um HTTP-Anfragen an NetScaler ADM zu senden.
Hinweis:
Die StyleBooks-APIs sind mithilfe der OpenAPI-Spezifikation im Entwicklerportal vollständig dokumentiert (Link zu den Entwicklungsdokumenten).
Beispiel 1
Betrachten Sie das in lb-vserver
StyleBook erstellte StyleBook, um einen virtuellen LoadBalancing-Server zu erstellen. Verwenden Sie die folgenden REST-APIs, um aus diesem StyleBook ein Konfigurationspaket zu erstellen:
HTTP METHOD: POST
URL: https://<ADM-agent-DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks
REQUEST-Header:
Content-Type: application/json
Accept: application/json
REQUEST BODY PAYLOAD:
{
"configpack":
{
"parameters": {
"name": "lb1",
"ip": "10.102.117.31"
},
"targets":
[
{
"id": "deecee30-f478-4446-9741-a85041903410"
}
]
}
}
<!--NeedCopy-->
In dieser HTTP-Anforderung ist die ID (z. B. “deecee30-f478-4446-9741-a85041903410”) die Instanz-ID der NetScaler-Instanz, auf der der virtuelle Lastausgleichsserver lb1 mit der IP-Adresse 10.102.117.31 erstellt wird. Die Instanz-ID der NetScaler-Instanz wird von NetScaler ADM abgerufen.
Um die ID einer Instanz zu erhalten, die von NetScaler ADM verwaltet wird, können Sie NetScaler ADM-APIs verwenden. Um beispielsweise die Instanz-ID oder eine NetScaler-Instanz abzurufen, deren IP-Adresse 192.168.153.160 lautet, können Sie die folgende API verwenden:
HTTP METHOD: GET
URL: https://<IP>/nitro/v2/config/ns?filter=ip_address:192.168.153.160
REQUEST HEADERS:
Accept: application/json
Die Antwort enthält die ID in der JSON-Nutzlast:
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"errorcode": 0,
"message": "Done",
"operation": "get",
"resourceType": "ns",
"username": "nsroot",
"tenant_name": "Owner",
"resourceName": "",
"ns":
[
{
"is_grace": "false",
"hostname": "",
"std_bw_config": "0",
"gateway_deployment": "false",
"id": "deecee30-f478-4446-9741-a85041903410",
}
]
}
<!--NeedCopy-->
Wenn das Configuration (Configuration Pack) erfolgreich erstellt wurde, erhalten Sie die folgende HTTP-Antwort:
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"configpack":
{
"config_id": "1460806080"
}
}
<!--NeedCopy-->
Sie haben Ihre erste Konfiguration (Configuration Pack) erstellt, die durch die ID 1460806080 eindeutig identifiziert wird. Mit dieser ID können Sie die Konfiguration abfragen, aktualisieren oder löschen.
Beispiel 2
Sie können dasselbe StyleBook verwenden, um ein anderes Konfigurations- oder Konfigurationspaket zu erstellen und es auf denselben oder verschiedenen NetScaler-Instanzen auszuführen. Erstellen Sie in diesem Beispiel eine weitere Konfiguration, geben Sie einen anderen Namen und eine andere IP-Adresse für den virtuellen Server an und geben Sie LEASTCONNECTION als Lastausgleichsmethode an. Stellen Sie diese Konfiguration auf zwei NetScaler-Instanzen bereit.
Die HTTP-Anfrage lautet wie folgt:
HTTP METHOD: POST
URL: https://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks
REQUEST HEADERS:
Content-Type: application/json
Accept: application/json
REQUEST BODY PAYLOAD:
{
"configpack":
{
"parameters":
{
"name": "lb2",
"ip": "10.102.117.32",
"lb-alg": "LEASTCONNECTION"
},
"targets"
[
{"id": "deecee30-f478-4446-9741-a85041903410"},
{"id": "debecc60-d589-4557-8632-a74032802412"}
]
}
}
<!--NeedCopy-->
In dieser HTTP-Anforderung wird der virtuelle Server lb2 mit der IP-Adresse 10.102.117.32 auf den beiden NetScaler-Instanzen erstellt, die durch die IDs deecee30-f478-4446-9741-a85041903410” und debecc60-d589-4557-8632-a74032802412” dargestellt werden.
Bei erfolgreicher Erstellung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"configpack":
{
"config_id": "1657696292"
}
}
<!--NeedCopy-->
Dieses neue Konfigurationspaket hat eine andere ID 165769629. Sie können diese Konfiguration mithilfe dieser ID aktualisieren oder entfernen.
Beispiel 3
Betrachten Sie das “basic-lb-config” -StyleBook, das Sie in StyleBook erstellt haben, um eine grundlegende Lastausgleichskonfiguration zu erstellen. Verwenden Sie REST API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:
HTTP METHOD: POST
URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/basic-lb-config/configpacks
REQUEST HEADERS:
Content-Type: application/json
Accept: application/json
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"configpack":
{
"parameters":
{
"name": "myapp",
"ip": "10.70.122.25",
"svc-servers": ["192.168.100.11","192.168.100.12"],
"svc-port": 8080
},
"targets":
[
{
"id": "deecee30-f478-4446-9741-a85041903410"
},
{
"id": "debecc60-d589-4557-8632-a74032802412"
}
]
}
}
<!--NeedCopy-->
In dieser HTTP-Anforderung wird die Load Balancing-Konfiguration auf zwei NetScaler-Instanzen ausgeführt. Sie können sich bei diesen NetScaler-Instanzen anmelden, um zu überprüfen, ob ein virtueller Server und eine Dienstgruppe mit zwei Diensten erstellt werden.
Beispiel 4
Betrachten Sie das zusammengesetzte StyleBook-Composite-Beispiel, das Sie in Composite StyleBook erstellenerstellt haben. Verwenden Sie REST-APIs, um aus diesem StyleBook ein Konfigurationspaket wie folgt zu erstellen:
HTTP METHOD: POST
URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks
REQUEST HEADERS:
Content-Type: application/json
Accept: application/json
REQUEST BODY PAYLOAD:
{
"configpack":
{
"parameters": {
"name": "myapp",
"ip": "2.2.2.2",
"svc-servers": ["10.102.29.52","10.102.29.53"]
},
"targets":
[
{
"id": "deecee30-f478-4446-9741-a85041903410"
},
{
"id": "debecc60-d589-4557-8632-a74032802412"
}
]
}
}
<!--NeedCopy-->
In dieser HTTP-Anforderung wird die Konfiguration auf zwei NetScaler-Instanzen erstellt, die durch ihre IDs dargestellt werden. Wenn Sie sich bei NetScaler-Instanzen anmelden, können Sie die Konfigurationsobjekte anzeigen, die mit dem StyleBook “basic-lb-config” erstellt wurden, das in das StyleBook “composite-example” importiert wurde. Sie können auch einen neuen HTTP-Monitor mit dem Namen myapp-mon
sehen, der Teil des StyleBook “composite-example” war.
Bei erfolgreicher Erstellung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"configpack": {
"config_id": "4917276817"
}
}
<!--NeedCopy-->
Aktualisieren einer Konfiguration
Um die Konfiguration zu aktualisieren, können Sie die folgende API verwenden. Hier wird dem virtuellen Lastausgleichserver “myapp” ein Backend-Server mit der IP-Adresse 10.102.29.54 hinzugefügt:
HTTP METHOD: PUT
URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817
REQUEST HEADERS:
Content-Type: application/json
Accept: application/json
REQUEST BODY PAYLOAD:
{
"configpack": {
"parameters": {
"name": "myapp",
"ip": "2.2.2.2",
"svc-servers": ["10.102.29.52","10.102.29.53","10.102.29.54"]
},
"targets":
[
{
"id": "deecee30-f478-4446-9741-a85041903410"
},
{
"id": "debecc60-d589-4557-8632-a74032802412"
}
]
}
}
<!--NeedCopy-->
Bei erfolgreichem Update des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE BODY (on success):
{
"configpack": {
"config-id": "4917276817"
}
}
<!--NeedCopy-->
Löschen einer Konfiguration
Um diese Konfiguration (aus allen NetScaler-Instanzen) zu löschen, können Sie die API wie folgt zum Löschen eines Konfigurationspakets verwenden:
Bei erfolgreichem Löschen des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
HTTP METHOD: DELETE
URL: http://<DNS-or-IP>/stylebook/nitro/v2/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817
REQUEST HEADERS:
Accept: application/json
EXPECTED RESPONSE HEADERS (on success):
200 OK
Content-Type: application/json
EXPECTED RESPONSE PAYLOAD (on success):
{
"configpack": {
"config_id": "4917276817"
}
}
<!--NeedCopy-->
Melden Sie sich bei der NetScaler-Instanz an und überprüfen Sie, ob alle Konfigurationsobjekte, die Teil dieses Konfigurationspakets sind, entfernt wurden.
Um die Konfiguration aus bestimmten NetScaler-Instanzen statt aus allen Instanzen zu entfernen, verwenden Sie den Vorgang zum Aktualisieren des Konfigurationspakets unter Konfigurationaktualisieren. Ändern Sie das targets
Attribut in der JSON-Nutzlast, um die spezifischen NetScaler-Instanz-IDs zu entfernen.