Citrix Application Delivery Management-Service

Verwenden von API zum Erstellen von Konfigurationen aus StyleBooks

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. Citrix ADM validiert Ihr StyleBook beim Importieren. Wenn die Validierung erfolgreich ist, wird Ihr StyleBook im Citrix ADM -Katalog von StyleBooks angezeigt, der zum Erstellen von Konfigurationen verwendet werden kann.

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 Citrix ADM zu senden.

Beispiel 1

Betrachten Sie das in Ihnen erstellte lb-vserver StyleBook StyleBook zum Erstellen eines virtuellen Load Balancing Servers. Verwenden Sie REST API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

HTTP METHOD: POST

URL: https://<ADM-DNS-or-IP>/stylebook/nitro/v1/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": "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 Citrix ADC-Instanz, auf der der virtuelle Lastausgleichsserver lb1 mit der IP-Adresse 10.102.117.31 erstellt wird. Die Instanz-ID der Citrix ADC-Instanz wird von Citrix ADM abgerufen.

Um die ID einer Instanz zu erhalten, die von Citrix ADM verwaltet wird, können Sie Citrix ADM-APIs verwenden. Um beispielsweise die Instanz-ID oder eine Citrix ADC-Instanz abzurufen, deren IP-Adresse 192.168.153.160 lautet, können Sie die folgende API verwenden:

HTTP METHOD: GET

URL: https://<ADM-IP>/nitro/v1/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 Citrix 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 Citrix ADC-Instanzen bereit.

Die HTTP-Anforderung lautet wie folgt:

HTTP METHOD: POST

URL: https://<ADM-DNS-or-IP>/stylebook/nitro/v1/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 Citrix 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:

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 StyleBook basic-lb-config, das Sie in erstellt habenStyleBook zum Erstellen einer einfachen Lastausgleichskonfiguration. Verwenden Sie REST API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

HTTP METHOD: POST

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/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 Citrix ADC-Instanzen ausgeführt. Sie können sich bei diesen Citrix 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 erstellt habenErstellen eines zusammengesetzten StyleBook. Verwenden Sie REST API, um ein Konfigurationspaket aus diesem StyleBook wie folgt zu erstellen:

HTTP METHOD: POST

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/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 Citrix ADC-Instanzen erstellt, die durch ihre IDs dargestellt werden. Wenn Sie sich bei Citrix 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 mit dem Namen sehen myapp-mon, der Teil des StyleBook “Composite-Beispiel” 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 diese Konfiguration beispielsweise durch Hinzufügen eines neuen Backendservers mit der IP-Adresse 10.102.29.54 zum virtuellen Lastausgleichsserver zu aktualisieren myapp, verwenden Sie die API zum Aktualisieren eines Konfigurationspakets wie folgt:

HTTP METHOD: PUT

URL: http://<ADM-DNS-or-IP>/stylebook/nitro/v1/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 Citrix ADC-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://<ADM-DNS-or-IP>/stylebook/nitro/v1/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-->

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

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

Verwenden von API zum Erstellen von Konfigurationen aus StyleBooks