Application Delivery Management

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

Après avoir créé votre StyleBook, vous devez l’importer soit à l’aide de l’interface graphique de NetScaler Console, soit à l’aide des API de NetScaler Console. NetScaler Console valide votre StyleBook lorsque vous l’importez. Si la validation est réussie, votre StyleBook apparaît dans le catalogue de StyleBooks de NetScaler Console, prêt à être utilisé pour créer des configurations.

Vous pouvez maintenant 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 à NetScaler Console.

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 les API REST pour créer un pack de configuration à partir de ce StyleBook comme suit :

MÉTHODE HTTP : POST URL : https://<IP>/stylebook/nitro/v2/config/configpacks

En-têtes de requête :

Content-Type: application/json

Accept: application/json

CHARGE UTILE DU CORPS DE LA REQUÊTE :


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

Dans cette requête HTTP, le serveur virtuel d’équilibrage de charge lb1 avec l’adresse IP 10.102.117.31 est créé sur l’instance NetScaler avec un ID d’instance de « deecee30-f478-4446-9741-a85041903410 ». L’ID d’instance de l’instance NetScaler est récupéré à partir de NetScaler Console.

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

MÉTHODE HTTP : GET

URL : https://<IP>/nitro/v2/config/ns?filter=ip_address:192.168.153.160

En-têtes de requête :

Accept: application/json

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

EN-TÊTES DE RÉPONSE ATTENDUS (en cas 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",
   }
 ]
}
<!--NeedCopy-->

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

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

202 OK

Content-Type: application/json

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

{
  "job":
  {
    "job_id": "1460806080"
  }
}
<!--NeedCopy-->

Vous avez créé votre premier travail, identifié de manière unique par l’ID 1460806080. Vous pouvez utiliser cet ID pour interroger, mettre à jour ou supprimer la configuration.

Vous pouvez utiliser l’URL suivante pour interroger l’état du travail :

https://<IP>/stylebook/nitro/v2/config/jobs/<jobid>.

Exemple 2

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

La requête HTTP est la suivante :

MÉTHODE HTTP : POST

URL : https://<IP>/stylebook/nitro/v2/config/configpacks

En-têtes de requête :

Content-Type: application/json

Accept: application/json

CHARGE UTILE DU CORPS DE LA REQUÊTE :

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

Dans cette requête HTTP, le serveur virtuel d’équilibrage de charge lb1 avec l’adresse IP 10.102.117.31 est créé sur les deux instances NetScaler avec les ID d’instance « deecee30-f478-4446-9741-a85041903410 » et « abcdee30-f478-4446-9741-a85041903410 ».

En cas de création réussie du pack de configuration, la réponse HTTP suivante est reçue :

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

202 OK

Content-Type: application/json

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

{
    "job": {
        "job_id": "165769629"
    }
}
<!--NeedCopy-->

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

Exemple 3

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

MÉTHODE HTTP : POST

URL : https://<IP>/stylebook/nitro/v2/config/configpacks

En-têtes de requête :

Content-Type: application/json

Accept: application/json

CHARGE UTILE DU CORPS DE LA REQUÊTE :

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-->

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

202 OK

Content-Type: application/json

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

{
    "job": {
        "job_id": "3628681382"
    }
}
<!--NeedCopy-->

Dans cette requête HTTP, la configuration d’équilibrage de charge s’exécute sur deux instances NetScaler. Vous pouvez vous connecter à ces instances NetScaler pour vérifier si un serveur virtuel et un groupe de services avec deux services liés sont créés.

Exemple 4

Considérez le StyleBook composite composite-example que vous avez créé dans Créer un StyleBook composite. Utilisez les API REST pour créer un pack de configuration à partir de ce StyleBook comme suit :

MÉTHODE HTTP : POST

URL : https://<IP>/stylebook/nitro/v2/config/configpacks

En-têtes de requête :

Content-Type: application/json

Accept: application/json

CHARGE UTILE DU CORPS DE LA REQUÊTE :

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

Dans cette requête HTTP, la configuration est créée sur deux instances NetScaler représentées par leurs ID. Si vous vous connectez aux instances NetScaler, 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 ».

En cas de création réussie du pack de configuration, la réponse HTTP suivante est reçue :

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

202 OK

Content-Type: application/json

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

{
    "job": {
        "job_id": "3628681382"
    }
}
<!--NeedCopy-->

Mise à jour d’une configuration

Considérez une configuration que vous souhaitez mettre à jour avec un nouveau serveur principal avec l’adresse IP 10.102.29.54. Pour ajouter le serveur au serveur virtuel d’équilibrage de charge myapp, utilisez l’API suivante :

MÉTHODE HTTP : PUT

URL : https://<IP>/stylebook/nitro/v2/config/configpacks/<configpackid>

En-têtes de requête :

Content-Type: application/json

Accept: application/json

CHARGE UTILE DU CORPS DE LA REQUÊTE :

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

En cas de mise à jour réussie du pack de configuration, la réponse HTTP suivante est reçue :

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

202 OK

Content-Type: application/json

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

{
    "job": {
        "job_id": "3628681382"
    }
}
<!--NeedCopy-->

Suppression d’une configuration

Pour supprimer cette configuration (de toutes les instances NetScaler), vous pouvez utiliser l’API de suppression d’un pack de configuration comme suit :

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

MÉTHODE HTTP : DELETE

URL : https://<DNS-or-IP>//stylebook/nitro/v2/config/configpacks/<configpackid>

En-têtes de requête :

Accept: application/json

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

202 OK

Content-Type: application/json

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

{
    "job": {
        "job_id": "3628681382"
    }
}
<!--NeedCopy-->

Connectez-vous à l’instance NetScaler et vérifiez que tous les objets de configuration faisant partie de ce pack de configuration ont été supprimés.

Pour supprimer la configuration d’une instance NetScaler spécifique au lieu de toutes les instances, utilisez l’opération de mise à jour du pack de configuration dans Mise à jour d’une configuration. Modifiez l’attribut targets dans la charge utile JSON pour supprimer les ID d’instance NetScaler spécifiques.

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