Application Delivery Management

API zum Erstellen von Konfigurationen aus StyleBooks verwenden

Nachdem Sie Ihr StyleBook erstellt haben, müssen Sie es in Citrix Application Delivery Management (ADM) importieren, um es entweder mithilfe des Citrix ADM oder mithilfe von Citrix 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 beliebige Tools wie das Befehlszeilentool curl oder die Postman Chrome-Browsererweiterung verwenden, um HTTP-Anforderungen an Citrix ADM zu senden.

Beispiel 1

Betrachten Sie das “lb-vserver” -StyleBook, das Sie in StyleBook erstellt haben, um einen virtuellen Lastausgleichsserver zu erstellen. Verwenden Sie die REST-API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

POST

https://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks

<!--NeedCopy-->
Content-Type: application/json
Accept: application/json
{
  "configpack":
  {
    "parameters": {
      "name": "lb1",
      "ip": "10.102.117.31"
    },
    "target_devices":
    [
      {
        "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 ADC-Instanz, auf der der virtuelle Lastausgleichsserver lb1 mit der IP-Adresse 10.102.117.31 erstellt wird. Die Instanz-ID der NetScaler ADC-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 einer Citrix ADC Instanz abzurufen, deren IP-Adresse 192.168.153.160 lautet, können Sie die folgende API verwenden:

GET https://<MAS-IP>/nitro/v1/config/ns?filter=ip_address:192.168.153.160
<!--NeedCopy-->
Accept: application/json
<!--NeedCopy-->

Die Antwort enthält die ID in der Nutzlast:

200
OK
Content-Type: application/json
{
  "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 Konfigurationspaket erfolgreich erstellt wurde, erhalten Sie die folgende HTTP-Antwort:

200 OK
Content-Type: application/json
{
  "configpack":
  {
    "config_id": "1460806080"
  }
}
<!--NeedCopy-->

Sie haben Ihr erstes Konfigurationspaket erstellt, das 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 Konfigurationspaket zu erstellen und es auf denselben oder verschiedenen NetScaler ADC-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 ADC-Instanzen bereit.

Die HTTP-Anfrage lautet wie folgt:

POST

https://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/lb-vserver/configpacks
<!--NeedCopy-->
Content-Type: application/json
Accept: application/json
{
  "configpack":
  {
    "parameters":
    {
      "name": "lb2",
      "ip": "10.102.117.32",
      "lb-alg": "LEASTCONNECTION"
    },
    "target_devices"
    [
     {"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 ADC-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:

200 OK
Content-Type: application/json
{
   "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 die REST-API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

POST

http://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/basic-lb-config/configpacks
<!--NeedCopy-->
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
    },
    "target_devices":
    [
     {
      "id": "deecee30-f478-4446-9741-a85041903410"
     },
     {
      "id": "debecc60-d589-4557-8632-a74032802412"
     }
    ]
  }
}
<!--NeedCopy-->

In dieser HTTP-Anforderung wird die Lastausgleichskonfiguration auf zwei NetScaler ADC Instanzen ausgeführt. Sie können sich bei diesen NetScaler ADC-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 die REST-API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

POST http://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks
<!--NeedCopy-->
Content-Type: application/json
Accept: application/json
{
  "configpack":
  {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53"]
    },
    "target_devices":
    [
    {
      "id": "deecee30-f478-4446-9741-a85041903410"
    },
    {
      "id": "debecc60-d589-4557-8632-a74032802412"
    }
    ]
 }
}
<!--NeedCopy-->

In dieser HTTP-Anforderung wird die Konfiguration auf zwei NetScaler ADC Instanzen erstellt, die durch ihre IDs dargestellt werden. Wenn Sie sich bei NetScaler ADC-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 namens “myapp-mon” sehen, der Teil des “composite-example” StyleBook war.

Bei erfolgreicher Erstellung des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:

200 OK
Content-Type: application/json{
  "configpack": {
    "config_id": "4917276817"
  }
}
<!--NeedCopy-->

Aktualisieren einer Konfiguration

Um diese Konfiguration beispielsweise durch Hinzufügen eines neuen Backend-Servers mit IP-Adresse 10.102.29.54 zum virtuellen Lastausgleichsserver myapp zu aktualisieren, verwenden Sie die API zum Aktualisieren eines Konfigurationspakets wie folgt:

PUT http://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817
<!--NeedCopy-->
Content-Type: application/json
Accept: application/json
{
  "configpack": {
    "parameters": {
      "name": "myapp",
      "ip": "2.2.2.2",
      "svc-servers": ["10.102.29.52","10.102.29.53","10.102.29.54"]
  },
  "target_devices":
  [
    {
    "id": "deecee30-f478-4446-9741-a85041903410"
    },
  {
    "id": "debecc60-d589-4557-8632-a74032802412"
  }
]
}
}
<!--NeedCopy-->

Bei erfolgreichem Update des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:

200 OK
Content-Type: application/json
{
   "configpack": {
     "config-id": "4917276817"
  }
}
<!--NeedCopy-->

Löschen einer Konfiguration

Um diese Konfiguration (aus allen NetScaler ADC-Instanzen) zu löschen, können Sie die API wie folgt zum Löschen eines Konfigurationspakets verwenden:

DELETE http://<MAS-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817
<!--NeedCopy-->
Accept: application/json
<!--NeedCopy-->

Bei erfolgreichem Löschen des Konfigurationspakets wird die folgende HTTP-Antwort empfangen:

200 OK
Content-Type: application/json
{
   "configpack": {
     "config_id": "4917276817"
  }
}
<!--NeedCopy-->

Sie können sich bei der NetScaler ADC-Instanz anmelden und sicherstellen, dass alle Konfigurationsobjekte, die Teil dieses Konfigurationspakets sind, entfernt wurden.

Wenn Sie die Konfiguration von bestimmten NetScaler ADC-Instanzen anstelle von allen entfernen möchten, verwenden Sie den oben beschriebenen Update-Konfigurationspack-Vorgang und ändern Sie das Attribut “target_devices” in der JSON-Nutzlast, um die spezifischen NetScaler ADC-Instanz-IDs zu entfernen.

API zum Erstellen von Konfigurationen aus StyleBooks verwenden