Créer un StyleBook composite
Une fonctionnalité importante et puissante des 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 peut être désigné comme un type utilisé par les composants du second StyleBook, de manière similaire à un StyleBook intégré Nitro.
Par exemple, vous pouvez utiliser le StyleBook basic-lb-config que vous avez créé dans la section précédente pour construire un autre StyleBook appelé composite-example. Pour utiliser le StyleBook « basic-lb-config », vous devez l’importer dans le nouveau StyleBook, dans la section import-stylebooks.
Construire votre StyleBook
Le nouveau StyleBook se présenterait comme 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
<!--NeedCopy-->
Dans la section import-stylebooks, vous importez le StyleBook basic-lb-config en utilisant son espace de noms et sa version, référencés avec le préfixe « stlb ».
Dans la section components, 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éé dans 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 StyleBook basic-lb-config. Vous pouvez, cependant, utiliser n’importe quel paramètre du StyleBook (obligatoire et facultatif). Au lieu de reconstruire un lbvserver, un groupe de services, ainsi que des services et des liaisons de groupes de services, vous importez le StyleBook qui effectue toutes ces opérations en tant que composant et l’utilisez pour créer ces objets de configuration dans le nouveau StyleBook.
Le StyleBook ajoute un second 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 possède é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 de groupe de services créé dans le StyleBook « basic-lb-config » est exposé en tant que sortie, ce StyleBook peut y accéder en utilisant l’expression $components.basic-lb-comp.outputs.servicegroup-comp. Ceci est un exemple de la façon dont la section outputs peut être utilisée par les StyleBooks importateurs pour avoir accès aux composants des StyleBooks importés auxquels ils n’auraient pas pu accéder autrement.
Ensuite, copiez et collez le contenu du StyleBook dans un éditeur de texte, puis enregistrez le fichier sous le nom composite-example.yaml. Assurez-vous de valider le contenu YAML avant d’importer le fichier dans NetScaler Console. Ensuite, importez-le dans NetScaler Console et créez une ou plusieurs configurations à l’aide de ce StyleBook.
Nous vous recommandons d’utiliser le validateur YAML intégré dans StyleBooks pour valider et importer le contenu YAML.