APIs zur Erstellung von Konfigurationen aus StyleBooks verwenden
Nachdem Sie Ihr StyleBook erstellt haben, müssen Sie es entweder über die NetScaler Console GUI oder über die NetScaler Console APIs importieren. NetScaler Console validiert Ihr StyleBook beim Import. Wenn die Validierung erfolgreich ist, erscheint Ihr StyleBook im NetScaler Console Katalog der StyleBooks und kann zur Erstellung von Konfigurationen verwendet werden.
Sie können nun die StyleBook APIs verwenden, um Konfigurationen basierend auf diesem StyleBook zu erstellen. Sie können jedes Tool, wie das cURL-Befehlszeilentool oder die Postman Chrome-Browsererweiterung, verwenden, um HTTP-Anfragen an NetScaler Console zu senden.
Beispiel 1
Betrachten Sie das StyleBook lb-vserver, das Sie unter StyleBook zur Erstellung eines Load Balancing Virtual Servers erstellt haben. Verwenden Sie REST-APIs, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:
HTTP METHODE: POST
URL: https://<IP>/stylebook/nitro/v2/config/configpacks
ANFRAGE-Header:
Content-Type: application/json
Accept: application/json
ANFRAGE-BODY-PAYLOAD:
{
"configpack":
{
"parameters": {
"name": "lb1",
"vip-ipaddress": "10.102.117.31"
},
"targets":
[
{
"instance_id": "deecee30-f478-4446-9741-a85041903410"
}
],
"stylebook": {
"name": "lb-vserver",
"namespace": "com.example.stylebooks",
"version": "1.0"
}
}
}
<!--NeedCopy-->
In dieser HTTP-Anfrage wird der Load Balancing Virtual Server lb1 mit der IP-Adresse 10.102.117.31 auf der NetScaler-Instanz mit der Instanz-ID “deecee30-f478-4446-9741-a85041903410” erstellt. Die Instanz-ID der NetScaler-Instanz wird von NetScaler Console abgerufen.
Um die ID einer von NetScaler Console verwalteten Instanz zu erhalten, können Sie die NetScaler Console APIs verwenden. Um beispielsweise die Instanz-ID einer NetScaler-Instanz abzurufen, deren IP-Adresse 192.168.153.160 ist, können Sie die folgende API verwenden:
HTTP METHODE: GET
URL: https://<IP>/nitro/v2/config/ns?filter=ip_address:192.168.153.160
ANFRAGE-HEADER:
Accept: application/json
Die Antwort enthält die ID im JSON-Payload:
ERWARTETE ANTWORT-HEADER (bei Erfolg):
200 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"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 die Konfiguration (Konfigurationspaket) erfolgreich erstellt wurde, erhalten Sie die folgende HTTP-Antwort:
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"job":
{
"job_id": "1460806080"
}
}
<!--NeedCopy-->
Sie haben Ihren ersten Job erstellt, der eindeutig durch die ID 1460806080 identifiziert wird. Sie können diese ID verwenden, um die Konfiguration abzufragen, zu aktualisieren oder zu löschen.
Sie können die folgende URL verwenden, um den Jobstatus abzufragen:
https://<IP>/stylebook/nitro/v2/config/jobs/<jobid>.
Beispiel 2
Sie können dasselbe StyleBook verwenden, um ein weiteres Konfigurationspaket zu erstellen und es auf denselben oder verschiedenen NetScaler-Instanzen auszuführen. In diesem Beispiel erstellen Sie eine weitere Konfiguration und geben einen anderen Namen und eine andere IP-Adresse für den virtuellen Server an. Geben Sie LEASTCONNECTION als Load-Balancing-Methode an. Stellen Sie diese Konfiguration auf zwei NetScaler-Instanzen bereit.
Die HTTP-Anfrage lautet wie folgt:
HTTP METHODE: POST
URL: https://<IP>/stylebook/nitro/v2/config/configpacks
ANFRAGE-HEADER:
Content-Type: application/json
Accept: application/json
ANFRAGE-BODY-PAYLOAD:
{
"configpack":
{
"parameters": {
"name": "lb1",
"vip-ipaddress": "10.102.117.31",
"lb-alg": "LEASTCONNECTION"
},
"targets":
[
{
"instance_id": "deecee30-f478-4446-9741-a85041903410"
},
{
"instance_id": "abcdee30-f478-4446-9741-a85041903410"
}
],
"stylebook": {
"name": "lb-vserver",
"namespace": "com.example.stylebooks",
"version": "1.0"
}
}
}
<!--NeedCopy-->
In dieser HTTP-Anfrage wird der Load Balancing Virtual Server lb1 mit der IP-Adresse 10.102.117.31 auf den beiden NetScaler-Instanzen mit den Instanz-IDs “deecee30-f478-4446-9741-a85041903410” und “abcdee30-f478-4446-9741-a85041903410” erstellt.
Nach erfolgreicher Erstellung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"job": {
"job_id": "165769629"
}
}
<!--NeedCopy-->
Dieses neue Konfigurationspaket hat eine andere ID, 1657696292. Sie können diese Konfiguration mit dieser ID aktualisieren oder entfernen.
Beispiel 3
Betrachten Sie das StyleBook “basic-lb-config”, das Sie unter StyleBook zur Erstellung einer grundlegenden Load-Balancing-Konfiguration erstellt haben. Verwenden Sie REST-APIs, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:
HTTP METHODE: POST
URL: https://<IP>/stylebook/nitro/v2/config/configpacks
ANFRAGE-HEADER:
Content-Type: application/json
Accept: application/json
ANFRAGE-BODY-PAYLOAD:
Content-Type: application/json
Accept: application/json
{
"configpack":
{
"parameters":
{
"name": "myapp",
"ip": "10.70.122.25",
"svc-servers": ["192.168.100.11","192.168.100.12"],
"svc-port": 8080
},
"targets":
[
{
"instance_id": "deecee30-f478-4446-9741-a85041903410"
},
{
"instance_id": "abcdefgi-d589-4557-8632-a74032802412"
}
],
"stylebook": {
"name": "basic-lb-config",
"namespace": "com.example.stylebooks",
"version": "0.1"
}
}
}
<!--NeedCopy-->
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"job": {
"job_id": "3628681382"
}
}
<!--NeedCopy-->
In dieser HTTP-Anfrage 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 gebundenen Diensten erstellt wurden.
Beispiel 4
Betrachten Sie das zusammengesetzte StyleBook composite-example, das Sie unter Erstellen eines zusammengesetzten StyleBooks erstellt haben. Verwenden Sie REST-APIs, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:
HTTP METHODE: POST
URL: https://<IP>/stylebook/nitro/v2/config/configpacks
ANFRAGE-HEADER:
Content-Type: application/json
Accept: application/json
ANFRAGE-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": "abcdefgg-d589-4557-8632-a74032802412"
}
],
"stylebook": {
"name": "composite-example",
"namespace": "com.example.stylebooks",
"version": "0.1"
}
}
<!--NeedCopy-->
In dieser HTTP-Anfrage wird die Konfiguration auf zwei NetScaler-Instanzen erstellt, die durch ihre IDs repräsentiert werden. Wenn Sie sich bei den NetScaler-Instanzen anmelden, können Sie die Konfigurationsobjekte anzeigen, die vom StyleBook “basic-lb-config” erstellt wurden, das in das StyleBook “composite-example” importiert wurde. Sie können auch einen neuen HTTP-Monitor namens myapp-mon sehen, der Teil des StyleBooks “composite-example” war.
Nach erfolgreicher Erstellung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"job": {
"job_id": "3628681382"
}
}
<!--NeedCopy-->
Eine Konfiguration aktualisieren
Betrachten Sie eine Konfiguration, die Sie mit einem neuen Backend-Server mit der IP-Adresse 10.102.29.54 aktualisieren möchten. Um den Server zum Load Balancing Virtual Server myapp hinzuzufügen, verwenden Sie die folgende API:
HTTP METHODE: PUT
URL: https://<IP>/stylebook/nitro/v2/config/configpacks/<configpackid>
ANFRAGE-HEADER:
Content-Type: application/json
Accept: application/json
ANFRAGE-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":
[
{
"instance_id": "deecee30-f478-4446-9741-a85041903410"
},
{
"instance_id": "abdcedff-d589-4557-8632-a74032802412"
}
]
}
}
<!--NeedCopy-->
Nach erfolgreicher Aktualisierung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-BODY (bei Erfolg):
{
"job": {
"job_id": "3628681382"
}
}
<!--NeedCopy-->
Eine Konfiguration löschen
Um diese Konfiguration (von allen NetScaler-Instanzen) zu löschen, können Sie die API zum Löschen eines Konfigurationspakets wie folgt verwenden:
Nach erfolgreicher Löschung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:
HTTP METHODE: DELETE
URL: https://<DNS-or-IP>//stylebook/nitro/v2/config/configpacks/<configpackid>
ANFRAGE-HEADER:
Accept: application/json
ERWARTETE ANTWORT-HEADER (bei Erfolg):
202 OK
Content-Type: application/json
ERWARTETER ANTWORT-PAYLOAD (bei Erfolg):
{
"job": {
"job_id": "3628681382"
}
}
<!--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 von einer bestimmten NetScaler-Instanz anstatt von allen Instanzen zu entfernen, verwenden Sie den Vorgang zum Aktualisieren des Konfigurationspakets unter Eine Konfiguration aktualisieren. Ändern Sie das targets-Attribut im JSON-Payload, um die spezifischen NetScaler-Instanz-IDs zu entfernen.