Citrix Application Delivery Management service

Utiliser l’API pour créer des configurations à partir de StyleBooks

Après avoir créé votre StyleBook, vous devez l’importer dans Citrix Application Delivery Management (ADM) pour l’utiliser soit à l’aide de Citrix ADM, soit à l’aide des API Citrix ADM. Citrix ADM valide votre StyleBook lorsque vous l’importez et si la validation est réussie, votre StyleBook apparaît dans le catalogue Citrix ADM de StyleBooks, prêt à être utilisé pour créer des configurations.

Vous pouvez désormais utiliser les API StyleBook pour créer des configurations basées sur ce StyleBook. Vous pouvez utiliser n’importe quel outil tel que l’outil de ligne de commande curl ou l’extension de navigateur Chrome Postman pour envoyer des requêtes HTTP à Citrix ADM.

Exemple 1

Considérez le StyleBook « lb-vserver » que vous avez créé dans StyleBook pour créer un serveur virtuel d’équilibrage de charge. Utilisez l’API REST pour créer un configpack à partir de ce StyleBook comme suit :

Méthode HTTP : POST

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

En-têtes DEMANDE :

Content-Type: application/json

Accepter : application/json

CHARGE CORPS DE LA DEMANDE:

{
  "configpack":
  {
    "parameters": {
      "name": "lb1",
      "ip": "10.102.117.31"
    },
    "targets":
    [
      {
        "id": "deecee30-f478-4446-9741-a85041903410"
      }
    ]
  }
}

Dans cette requête HTTP, l’id (par exemple, « deecee30-f478-4446-9741-a85041903410”) est l’ID d’instance de l’instance Citrix ADC sur laquelle le serveur virtuel d’équilibrage de charge lb1 avec l’adresse IP 10.102.117.31 est créé. L’ID d’instance de l’instance Citrix ADC est extrait de Citrix ADM.

Pour obtenir l’ID d’une instance gérée par Citrix ADM, vous pouvez utiliser les API Citrix ADM. Par exemple, pour récupérer l’ID d’instance d’une instance Citrix ADC dont l’adresse IP est 192.168.153.160, vous pouvez utiliser l’API suivante :

Méthode HTTP : GET

URL : https://<ADM-IP>/nitro/v1/config/ns?filter=ip_address:192.168.153.160

EN-TÊTES DE DEMANDE:

Accepter : application/json

La réponse contient l’ID dans la charge utile json :

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
  "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",
   }
 ]
}

Si la configuration (configpack) est créée avec succès, vous recevez la réponse HTTP suivante :

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
  "configpack":
  {
    "config_id": "1460806080"
  }
}

Vous avez créé votre première configuration (configpack) qui est identifiée de manière unique à l’aide de l’id 1460806080. Vous pouvez utiliser cet ID pour interroger, mettre à jour ou supprimer la configuration.

Exemple 2

Vous pouvez utiliser le même StyleBook pour créer une autre configuration ou configpack et l’exécuter sur des instances Citrix ADC identiques ou différentes. Dans cet exemple, créez une autre configuration et fournissez un nom et une adresse IP différents pour le serveur virtuel et spécifiez LEASTCONNECTION comme méthode d’équilibrage de charge. Déployez cette configuration sur deux instances Citrix ADC.

La requête HTTP est la suivante :

Méthode HTTP : POST

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

EN-TÊTES DE DEMANDE:

Content-Type: application/json

Accepter : application/json

CHARGE CORPS DE LA DEMANDE:

{
  "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"}
    ]
  }
}

Dans cette requête HTTP, le serveur virtuel d’équilibrage de charge lb2 avec l’adresse IP 10.102.117.32 est créé sur les deux instances Citrix ADC représentées par les ID « deecee30-f478-4446-9741-a85041903410” et « debecc60-d589-4557-8632-a74032802412”.

Lors de la création réussie du configpack, la réponse HTTP suivante est reçue :

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
   "configpack":
  {
     "config_id": "1657696292"
  }
}

Ce nouveau configpack a un ID différent 165769629. Vous pouvez mettre à jour ou supprimer cette configuration à l’aide de cet ID.

Exemple 3

Considérez le StyleBook « basic-lb-config » dans lequel vous avez créé StyleBook pour créer une configuration d’équilibrage de charge de base. Utilisez l’API REST pour créer un configpack à partir de ce StyleBook comme suit :

Méthode HTTP : POST

URL : http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/basic-lb-config/configpacks

EN-TÊTES DE DEMANDE:

Content-Type: application/json

Accepter : application/json

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
  "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"
     }
    ]
  }
}

Dans cette requête HTTP, la configuration d’équilibrage de charge est exécutée sur deux instances Citrix ADC. Vous pouvez ouvrir une session sur ces instances Citrix ADC pour vérifier si un serveur virtuel et un groupe de services avec deux services liés sont créés.

Exemple 4

Considérez l’exemple composite StyleBook dans lequel vous avez créé Créer un StyleBook composite. Utilisez l’API REST pour créer un configpack à partir de ce StyleBook comme suit :

Méthode HTTP : POST

URL : http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks

EN-TÊTES DE DEMANDE:

Content-Type: application/json

Accepter : application/json

CHARGE CORPS DE LA DEMANDE:

{
  "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"
     }
    ]
  }
}

Dans cette requête HTTP, la configuration est créée sur deux instances Citrix ADC représentées par leurs identifiants. Si vous ouvrez une session sur les instances Citrix ADC, vous pouvez afficher les objets de configuration créés par le StyleBook « basic-lb-config » qui a été importé dans le StyleBook « composite-example ». Vous pouvez également voir un nouveau moniteur HTTP appelé « myapp-mon » qui faisait partie du StyleBook « composite-example ».

Lors de la création réussie du configpack, la réponse HTTP suivante est reçue :

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
  "configpack": {
    "config_id": "4917276817"
  }
}

Mise à jour d’une configuration

Pour mettre à jour cette configuration, par exemple, en ajoutant un nouveau serveur principal avec l’adresse IP 10.102.29.54 au serveur virtuel d’équilibrage de charge myapp, utilisez l’API pour mettre à jour un configpack comme suit :

Méthode HTTP : PUT

URL : http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

EN-TÊTES DE DEMANDE:

Content-Type: application/json

Accepter : application/json

CHARGE CORPS DE LA DEMANDE:

{
  "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"
     }
   ]
  }
}

Lors de la mise à jour réussie du configpack, la réponse HTTP suivante est reçue :

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CORPS DE RÉPONSE ATTENDU (en cas de succès) :

{
   "configpack": {
     "config-id": "4917276817"
  }
}

Suppression d’une configuration

Pour supprimer cette configuration (de toutes les instances Citrix ADC), vous pouvez utiliser l’API pour supprimer un configpack comme suit :

En cas de suppression réussie du configpack, la réponse HTTP suivante est reçue :

Méthode HTTP : DELETE

URL : http://<ADM-DNS-or-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/0.1/composite-example/configpacks/4917276817

EN-TÊTES DE DEMANDE:

Accepter : application/json

EN-TÊTES DE RÉPONSE ATTENDUS (en case de succès) :

200 OK

Content-Type: application/json

CHARGE DE RÉPONSE ATTENDUE (en cas de succès) :

{
   "configpack": {
     "config_id": "4917276817"
  }
}

Vous pouvez ouvrir une session sur l’instance de Citrix ADC et vérifier que tous les objets de configuration qui font partie de ce configpack ont été supprimés.

Si vous souhaitez supprimer la configuration d’instances Citrix ADC spécifiques au lieu de toutes les instances, utilisez l’opération update configpack décrite ci-dessus et modifiez l’attribut « targets » dans la charge utile JSON pour supprimer les ID d’instance Citrix ADC spécifiques.

Utiliser l’API pour créer des configurations à partir de StyleBooks