StyleBook pour créer un serveur virtuel d’équilibrage de charge

Dans cet exemple, vous concevez un StyleBook de base qui crée un serveur virtuel d’équilibrage de charge de type protocole HTTP et écoute sur le port 80. Le nom du serveur virtuel, l’adresse IP et les paramètres de la méthode d’équilibrage de charge acceptent les valeurs définies par l’utilisateur, c’est-à-dire qu’il s’agit des paramètres du StyleBook.

En-tête

Les six premières lignes d’un StyleBook comprennent la section d’en-tête. Dans cet exemple, la section d’en-tête est écrite comme suit :

name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"

La section d’en-tête comprend les détails suivants :

  • name : Un nom pour ce StyleBook.
  • description : Description définissant ce que fait ce StyleBook. Cette description apparaît sur Citrix Application Delivery Management (ADM).
  • display-name : nom descriptif du StyleBook qui apparaît sur Citrix ADM.
  • espace de noms : Un espace de noms fait partie d’un identificateur unique pour un StyleBook afin d’éviter les collisions de noms.
  • schema-version : prend toujours la valeur « 1.0 » dans cette version.
  • version : Numéro de version du StyleBook. Vous pouvez modifier le numéro de version lorsque vous mettez à jour le StyleBook.

La combinaison du nom, de l’espace de nomset de la versionidentifie de manière unique un StyleBook dans le système. Vous ne pouvez pas avoir deux StyleBooks avec la même combinaison de nom, d’espace de noms et de version dans Citrix ADM. Cependant, vous pouvez avoir deux StyleBooks avec le même nom et la même version mais des espaces de noms différents, ou avec le même espace de noms et la même version mais des noms différents.

Remarque

Considérez que vous avez mis à jour votre StyleBook et que vous avez un numéro de version mis à jour. Maintenant, si vous faites référence à (c’est-à-dire, si vous importez) ce StyleBook dans d’autres StyleBooks, assurez-vous de mettre à jour le numéro de version dans d’autres StyleBooks aussi, afin qu’ils utilisent la version correcte du StyleBook importé.

Importer StyleBooks

La section après en-tête est appelée “import-stylebooks.” Dans cette section, vous devez déclarer l’espace de noms et le numéro de version de tout autre StyleBook auquel vous souhaitez faire référence dans votre StyleBook actuel. Cela vous permet d’importer et de réutiliser d’autres StyleBooks au lieu de reconstruire la même configuration dans votre propre StyleBook.

Dans cet exemple, la section Import-Stylebooks est écrite comme suit :

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  prefix: ns
  version: "10.5"

Chaque StyleBook doit faire référence à l’espace de noms netscaler.nitro.config s’il utilise directement l’un des objets de configuration NITRO. Cet espace de noms contient tous les types NITRO Citrix ADC, tels que LBVServer.Comme les versions logicielles 10.5 et ultérieures sont prises en charge, vous pouvez utiliser votre StyleBook pour créer et exécuter des configurations sur n’importe quelle instance Citrix ADC exécutant les versions 10.5 et ultérieures.

Le préfixe utilisé dans la section Import-Stylebooks est un raccourci pour faire référence à la combinaison de l’espace de noms et de la version. Dans ce cas, ns se réfère à netscaler.nitro.config de la version 10.5. Dans les sections ultérieures de votre StyleBook, au lieu d’utiliser l’espace de noms et la version pour faire référence au StyleBook importé, vous pouvez utiliser la chaîne de préfixe choisie, par exemple ns, dans l’exemple ci-dessus.

La version utilisée dans StyleBooks est la version Citrix ADC NITRO. Un StyleBook basé sur Nitro version X peut être utilisé pour configurer n’importe quel Citrix ADC version X ou supérieure.

Remarque

Pour vous assurer que vos StyleBooks peuvent être utilisés pour configurer n’importe quelle instance Citrix ADC de la version 10.5 ou ultérieure, Citrix recommande que, pour une compatibilité maximale, vous importez l’espace de noms Nitro 10.5 dans vos StyleBooks qui utilisent directement les StyleBooks intégrés à Nitro (espace de noms : netscaler.nitro.config, version : 10.5).

Il est important qu’un StyleBook qui importe d’autres StyleBooks soit basé sur une version Nitro qui est à la même version ou supérieure que les StyleBooks qu’il importe. Par exemple, un StyleBook basé sur la version 10.5 de Nitro ne peut pas dépendre, utiliser ou importer un StyleBook basé sur 11.1. Mais un StyleBook basé sur la version 11.1 peut importer un StyleBook basé sur n’importe quelle version inférieure à 11.1.

Il est également possible qu’un StyleBook qui n’importe pas du tout l’espace de noms Nitro. Cela signifie qu’un StyleBook n’a pas besoin de définir directement les composants Nitro, mais peut importer (dépendre) les StyleBooks qui définissent les composants Nitro. Le StyleBook qui importe d’autres StyleBooks acquiert toujours la version Nitro la plus élevée dans la hiérarchie de ses dépendances et peut donc être utilisé pour configurer des Citrix ADC de cette version ou supérieure.

Paramètres

La section paramètres vous permet de déclarer tous les paramètres dont vous avez besoin dans votre StyleBook. En tant que développeur de StyleBook, vous devez décider quelle est l’entrée que vous souhaitez spécifier par les utilisateurs de votre StyleBook. Dans cet exemple, vous avez créé votre StyleBook d’une manière qui exige que ses utilisateurs fournissent le nom du serveur virtuel, son adresse IP et la méthode d’équilibrage de charge.

La section des paramètres se présenterait comme suit :

parameters:
 -
  name: name
  label: "Application Name"
  description: "Give a name to the application configuration."
  type: string
  required: true
 -
  name: vip-ipaddress
  label: "Load Balancer IP Address"
  description: "The Application VIP that clients access"
  type: ipaddress
  required: true
 -
  name: lb-alg
  label: LB Algorithm
  description: Load Balancing Algorithm
  type: string
  default: ROUNDROBIN
  allowed-values:
   - ROUNDROBIN
   - LEAST-CONNECTION

Remarque

Si vous ne fournissez pas l’étiquette d’un paramètre, Citrix ADM utilise l’attribut name lors de l’affichage de ce paramètre. Vous devez toujours définir une étiquette pour vos paramètres afin de pouvoir contrôler leur affichage dans Citrix ADM.

Toutefois, lors de l’utilisation des API, le paramètre est désigné par son nom.

Dans cette section, vous avez déclaré trois paramètres indiqués par leurs valeurs d’attribut de nom - nom pour le nom du serveur virtuel, ip pour l’adresse IP du serveur virtuel et lb-alg pour la méthode d’équilibrage de charge.

  • fait référence au type de valeur que ces paramètres peuvent prendre. Par exemple, name et lb-alg peuvent prendre une valeur de chaîne et la valeur ip doit être de type ip address. Les paramètres d’un StyleBook peuvent être de l’un des types intégrés suivants :
  • string : un tableau de caractères. Si aucune longueur n’est spécifiée, la valeur de chaîne peut prendre n’importe quel nombre de caractères. Toutefois, vous pouvez limiter la longueur d’un type de chaîne en utilisant les attributs min-length et max-length.
  • number : Un nombre entier. Vous pouvez spécifier le nombre minimum et maximum que ce type peut prendre à l’aide des attributs min-value et max-value.
  • boolean : peut être vrai ou faux. Notez également que tous les littéraux sont considérés par YAML comme des booléens (par exemple, Oui ou Non).
  • ipaddress : chaîne qui représente une adresse IPv4 ou IPv6 valide.
  • tcp-port : nombre compris entre 0 et 65535 qui représente un port TCP ou UDP.
  • password : valeur de chaîne opaque/secrète. Lorsque Citrix ADM affiche une valeur pour ce paramètre, elle est affichée sous forme d’astérisques (*****).
  • certfile : fichierde certificat.
  • keyfile : fichierde clé privée de certificat.
  • file : un paramètre de ce type nécessite que l’utilisateur télécharge un fichier, par exemple un certificat ou un fichier de clé.
  • objet : Se compose de plusieurs éléments et chacun de ces éléments est un paramètre. Ce type peut être utilisé pour regrouper plusieurs paramètres liés sous un seul paramètre parent.
  • required : Indique si un paramètre est obligatoire ou facultatif. S’il est défini sur true, le paramètre est obligatoire et l’utilisateur doit fournir une valeur pour ce paramètre lors de la création de configurations à l’aide de ce StyleBook. Par défaut, tous les paramètres sont facultatifs. Dans cet exemple, name et ip sont des paramètres obligatoires tandis que lb-alg est un paramètre facultatif dont la valeur par défaut est « ROUNDROBIN. »

Utilisez l’attribut par défaut pour affecter une valeur par défaut à un paramètre facultatif. Lors de la création d’une configuration, si un utilisateur ne spécifie pas de valeur, la valeur par défaut est utilisée. Par exemple, pour le paramètre lb-alg, la valeur par défaut est ROUNDROBIN.

Utilisez l’attribut allowed-values pour définir des valeurs spécifiques parmi lesquelles un utilisateur peut choisir lors de la création d’une configuration. Dans cet exemple, vous avez spécifié deux valeurs pour le paramètre lb-alg : ROUNDROBIN et LEASTCONNECTION.

Lorsque vous importez votre StyleBook et l’utilisez, Citrix ADM affiche un formulaire avec ces trois paramètres. Les champs affichés pour name et ip permettent la saisie du type de valeur de chaîne et d’adresse IP, et le champ lb-alg est affiché sous forme de liste déroulante avec ROUNDROBIN sélectionné comme valeur par défaut.

Remarque

En plus des types intégrés, un paramètre peut avoir un autre StyleBook comme type. Ceci est une façon de réutiliser les paramètres définis dans d’autres StyleBooks.

Composants

La dernière section de ce StyleBook est appelée section des composants et est considérée comme la section la plus importante dans le StyleBook. Dans cette section, vous définissez les objets de configuration qui doivent être créés par SyleBook.

Pour cet exemple, vous devez écrire la section des composants comme suit :

components:
 -
  name: lbvserver-comp
  description: This StyleBook component (a Builtin Nitro StyleBook) builds a Citrix ADC lbvserver configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80

Cet exemple ne contient qu’un seul composant. Les principaux attributs d’un composant sont le nom, le type et les propriétés. Le type d’un composant détermine les propriétés que ce composant fournit. Les composants sont de deux types :

  • Type intégré : Ce type est fourni par le système et vous n’avez pas à le définir, par exemple, les types d’entités NITRO « lbvserver » ou « servicegroup ». Dans cet exemple, vous utilisez un type de composant intégré.
  • Type composite : ce type est le StyleBook que vous avez créé et importé dans Citrix ADM, ou le StyleBook par défaut fourni avec Citrix ADM. Vous pouvez en savoir plus sur les StyleBooks composites dansCréer un StyleBook composite.

Dans cet exemple, vous avez défini un composant appelé lbvserver-comp. Ce composant est de type ns : :lbvserver (un type Nitro intégré), où « ns » est le préfixe qui fait référence à l’espace de noms netscaler.nitro.config et à la version 10.5 que vous aviez spécifiés dans la section import stylebooks, et « lbvserver » est une ressource Nitro dans ce espace de noms.

Les propriétés définies ici sont les attributs de la ressource « lbvserver ». Pour en savoir plus sur toutes les ressources Citrix ADC Nitro disponibles et leurs attributs, consultez la Documentation de l’API NITRO REST Citrix ADC.

Les propriétés de cette section incluent les attributs obligatoires de la ressource « lbvserver » et vous permettent de spécifier des valeurs pour ces attributs. Dans cet exemple, vous spécifiez des valeurs statiques pour le type de service et le port alors que les propriétés name, ipv46 et lbmethod obtiennent leurs valeurs à partir des paramètres d’entrée. Dans le reste du StyleBook, vous pouvez faire référence aux noms de paramètres définis dans la section parameters à l’aide de l’expression $parameters.<parameter-name>, par exemple, $parameters.ip.

Remarque

Par convention, le préfixe « ns » est toujours utilisé pour désigner un espace de noms Citrix ADC Nitro dans la section « import-stylebooks ». Bien que ce n’est pas obligatoire, Citrix recommande d’utiliser la même convention dans vos propres StyleBooks pour assurer la cohérence.

Créez votre StyleBook

Maintenant que vous avez défini toutes les sections requises de ce StyleBook, réunissez-les pour créer votre premier StyleBook. Copiez et collez le contenu de StyleBook dans un éditeur de texte, puis enregistrez le fichier sous lb-vserver.yaml. Citrix vous recommande d’utiliser le validateur YAML intégré dans StyleBooks pour valider et importer le contenu YAML.

Le contenu complet du fichier lb-vserver.yaml est reproduit ci-dessous :

name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  version: "10.5"
  prefix: ns
 -
  namespace: com.citrix.adc.stylebooks
  version: "1.0"
  prefix: stlb

parameters:
 -
  name: name
  label: "Application Name"
  description: "Give a name to the application configuration."
  type: string
  required: true
 -
  name: vip-ipaddress
  label: "Load Balancer IP Address"
  description: "The Application VIP that clients access"
  type: ipaddress
  required: true
 -
  name: lb-alg
  label: LB Algorithm
  description: Load Balancing Algorithm
  type: string
  default: ROUNDROBIN
  allowed-values:
   - ROUNDROBIN
   - LEAST-CONNECTION

components:
 -
  name: lbvserver-comp
  description: This StyleBook component (a Builtin Nitro StyleBook) builds a Citrix ADC lbvserver configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80

Pour commencer à utiliser votre StyleBook pour créer des configurations, vous devez l’importer dans Citrix ADM, puis l’utiliser. Pour de plus amples informations, consultez la section Procédure d’utilisation de StyleBooks définis par l’utilisateur.

Vous pouvez également importer ce StyleBook dans d’autres StyleBooks (à l’aide de la construction Import-Stylebooks). Vous pouvez également modifier ce StyleBook pour inclure d’autres paramètres et composants comme décrit dans la section suivante.

StyleBook pour créer un serveur virtuel d’équilibrage de charge