Créer un StyleBook composite

Une caractéristique importante et puissante de StyleBooks est qu’ils peuvent être utilisés comme blocs de construction pour d’autres StyleBooks. Un StyleBook peut être importé dans un autre StyleBook et il peut être appelé un type qui est utilisé par les composants du second StyleBook similaire à un StyleBook intégré Nitro.

Par exemple, vous pouvez utiliser le Basic-lb-config StyleBook que vous avez créé dans la section précédente, pour créer un autre StyleBook appelé composite-example. Pour utiliser le « basic-lb-config » StyleBook, vous devez l’importer dans le nouveau StyleBook dans la section Import-Stylebooks.

Créez votre StyleBook

Le nouveau StyleBook ressemblerait à ce qui suit :

name: composite-example
namespace: com.example.stylebooks
version: "0.1"
display-name: Load Balancing Virtual Server (HTTP/RoundRobin)
description: This StyleBook defines a RoundRobin load balancing configuration with a monitor.
schema-version: "1.0"
import-stylebooks:
  -
   namespace: netscaler.nitro.config
   version: "10.5"
   prefix: ns
  -
   namespace: com.example.stylebooks
   version: "0.1"
   prefix: stlb
parameters:
  -
    name: name
    type: string
    label: Application Name
    description: Give a name to the application configuration.
    required: true
  -
    name: ip
    type: ipaddress
    label: Application Virtual IP (VIP)
    description: The Application VIP that clients access
    required: true
  -
    name: svc-servers
    type: ipaddress[]
    label: Application Server IPs
    description: The IP addresses of all the servers of this application
    required: true

  -
    name: response-code
    type: string[]
    label: List of Response Codes
    description: List of Response Codes - Provide a list of response codes in integer.

components:
  -
    name: basic-lb-comp
    type: stlb::basic-lb-config
    description: This component's type is another StyleBook that builds the NetScaler lbvserver, servicegroups and services configuration objects.
    properties:
     name: $parameters.name
     ip: $parameters.ip
     svc-servers: $parameters.svc-servers
  -
     name: monit-comp
     type: ns::lbmonitor
     description: This component is a basic Nitro type (a Builtin StyleBook) that builds the NetScaler monitor configuration object.
     properties:
       monitorname: $parameters.name + "-mon"
       type: HTTP
       respcode: $parameters.response-code
       httprequest: "'GET /'"
       lrtm: ENABLED
       secure: "YES"

     components:
        -
          name: monit-svcgrp-bind-comp
          type: ns::servicegroup_lbmonitor_binding
          properties:
            servicegroupname: $components.basic-lb-comp.outputs.servicegroup-comp.properties.servicegroupname
            monitor_name: $parent.properties.monitorname

Dans la section Import-Stylebooks, vous importez le Basic-lb-config StyleBook en utilisant son espace de noms et sa version, désignés avec le préfixe « stlb ».

Dans la section Composants, deux composants sont définis. Le premier composant est de type stlb : :basic-lb-config, où « basic-lb-config » est le nom du StyleBook que vous avez crééStyleBook pour créer une configuration d’équilibrage de charge de base. Les propriétés définies pour ce composant correspondent aux paramètres obligatoires déclarés dans le Basic-lb-config StyleBook. Vous pouvez toutefois utiliser n’importe quel paramètre du StyleBook (obligatoire et facultatif). Au lieu de recréer un serveur lbvserver, un groupe de services et des liaisons de services et de groupes de services, vous importez le StyleBook qui fait tout cela en tant que composant et l’utilisez pour créer ces objets de configuration dans le nouveau StyleBook.

StyleBook ajoute un deuxième composant « monit-comp » qui utilise les attributs de la ressource Nitro « lbmonitor » (un StyleBook intégré) pour créer un objet de configuration de moniteur. Il a également un sous-composant « monit-svcgrp-bind-comp » pour créer l’objet de configuration de liaison qui lie le moniteur au groupe de services créé dans le premier composant. Étant donné que le composant servicegroup créé dans le StyleBook « basic-lb-config » est exposé en tant que sortie, ce StyleBook peut y accéder à l’aide de l’expression $components.basic-lb-comp.outputs.servicegroup-comp. Ceci est un exemple de la façon dont la section de sorties peut être utilisée par les StyleBooks importateurs pour avoir accès à des composants dans les StyleBooks importés auxquels ils n’auraient pas pu accéder autrement.

Ensuite, copiez et collez le contenu de StyleBook dans un éditeur de texte, puis enregistrez le fichier sous composite-example.yaml. Assurez-vous de valider le contenu YAML avant d’importer le fichier dans Citrix ADM. Importez-le ensuite dans Citrix ADM et créez une ou plusieurs configurations à l’aide de ce StyleBook.

Citrix vous recommande d’utiliser le validateur YAML intégré dans StyleBooks pour valider et importer le contenu YAML.

Créer un StyleBook composite