Configuration de StyleBook

Utiliser une instance ADC comme source de données

Vous pouvez utiliser les instances ADC gérées comme sources de données. managed-adc Il s’agit d’un type de source de données intégré qui peut être facilement utilisé comme source de données dans ADM. Chaque instance ADC gérée dans ADM est une source de données par défaut. Vous pouvez commencer à utiliser ces sources de données dans vos StyleBooks si vous avez besoin de données provenant d’un ADC existant géré par ADM lors de la création de packs de configuration.

Dans la définition de StyleBook, spécifiez le paramètre de type datum intégré. Vous pouvez donc utiliser les types de sources de données dans votre StyleBook. Les utilisateurs de StyleBook peuvent sélectionner une source de données qui peut être utilisée pour récupérer des données à partir de cette source.

Utilisation de la source de données intégrée sans collecte

parameters:
  -
    name: selected-adc
    label: Select an existing lbvserver
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

Dans l’exemple, le datum paramètre est utilisé pour sélectionner n’importe quelle instance ADC gérée par ADM. La source de données managed-adc intégrée vous permet de récupérer des données à partir de n’importe quelle instance ADC gérée par Citrix ADM.

Dans votre StyleBook, vous pouvez accéder à n’importe quelle configuration depuis l’instance ADC sélectionnée. Vous pouvez également utiliser cette configuration lors de la création ou de la mise à jour de configurations sur le même ADC ou sur une instance ADC différente ; cela dépend de l’instance ADC cible sélectionnée.

Sélectionnez la collection à partir d’une source de données :

Dans l’instance ADC sélectionnée, pour accéder à une collection, utilisez l’expression suivante :

$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->

Exemple :

$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

Cette expression renvoie la liste de lbvserver l’instance ADC sélectionnée. Par exemple, vous pouvez parcourir cette liste pour sélectionner un élément spécifique lbvserver qui répond à une certaine condition.

Exemple de StyleBook sans collection

name: add-vservers-from-managed-adc-instances
namespace: com.citrix.adc.stylebooks
version: "1.0"
schema-version: "1.0"

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

parameters:
    -
      name: selected-adc
      label: Select a custom datasource environment
      type: datum
      required: true
      data-source:
        type: "managed-adc"

components:
  -
    name: sslvserver-comp
    type: ns::sslvserver
    repeat: $parameters.selected-adc.collections.lbvserver
    repeat-item: lbvs
    repeat-condition: $lbvs.attributes.servicetype == "SSL"
    properties:
      name: $lbvs.attributes.name
      ssl2: DISABLED
      ssl3: DISABLED
      tls1: DISABLED
      tls11: ENABLED
      tls12: ENABLED
<!--NeedCopy-->

L’interface graphique du pack de configuration affiche les instances ADC gérées par ADM et les utilisateurs de StyleBook peuvent sélectionner n’importe quel ADC lors de la création ou de la mise à jour du pack de configuration.

Source de données ADC intégrée sans collecte

Ce StyleBook utilise l’ADC sélectionné en itérant sur tous les lbvserver. Il sélectionne les serveurs virtuels SSL et définit la version autorisée sur chaque serveur virtuel.

L’expression suivante vous permet de parcourir la liste de lbvserver l’instance ADC.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: fait référence aux types d’entités sur l’instance ADC.

  • lbvserver: fait référence à la liste des serveurs virtuels d’équilibrage de charge dans l’instance ADC.

Pour chaque version lbvserver qui répond à la condition (servicetype == SSL), il met à jour les paramètres SSL des serveurs virtuels afin d’autoriser des versions SSL spécifiques.

Utilisation de la source de données intégrée avec collecte

parameters:
  -
    name: selected-lbvserver
    label: Select an existing ADC
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

Dans cet exemple, le datum paramètre est utilisé pour sélectionner à la fois l’instance ADC et le type lbvserver de source de managed-adc données.

Lorsque vous définissez un type de collection dans la parameters section, les utilisateurs de StyleBook peuvent sélectionner l’instance ADC et une entité spécifique dans une collection de cette instance.

Source de données d'instance ADC intégrée avec collection

Sélectionnez un attribut de la collection :

Lorsque l’utilisateur de StyleBook sélectionne un serveur virtuel, l’expression suivante de votre StyleBook peut accéder à n’importe quel attribut de l’élément sélectionné.

$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->

Dans cet exemple, la valeur sélectionnée datum est lbvserver. Ainsi, vous pouvez accéder à n’importe quel attribut de l’entité ADC lbvserver tel que nameservicetypeipv46,,, etc.

Exemple :

$parameters.selected-lbvserver.attributes.name
<!--NeedCopy-->

Cette expression extrait le nom du serveur virtuel d’équilibrage de charge sélectionné. Pour plus d’informations sur les entités (collections) ADC et leurs attributs, consultez la référence de l’API Citrix ADC NITRO.

Sélectionnez une liste de la collection :

Outre l’élément sélectionné par l’utilisateur de StyleBook, vous pouvez également accéder à n’importe quel élément de la même collection ou de collections différentes sur l’instance ADC sélectionnée. Pour accéder à une autre collection sur cette instance ADC, utilisez l’expression suivante dans la components section :

$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->

Exemple :

$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->

Cette expression renvoie la liste des serveurs virtuels de commutation de contenu à partir de l’instance ADC sélectionnée.

De plus, l’expression suivante renvoie une liste de toutes les liaisons entre lbvservers et servicegroups :

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->

Exemple de StyleBook avec une collection

Voici un exemple de StyleBook qui montre comment utiliser l’instance ADC gérée comme source de données :

---
name: bind-lb-to-servicegroup-using-ADC-as-datasource
namespace: com.citrix.adc.stylebooks
version: "1.1"
display-name: "HTTP/SSL LoadBalancing StyleBook with Service Binding"
description: "This stylebook defines a typical Load Balanced Application configuration where we allow the user to select an existing lbvserver on the ADC using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the ADC. Finally, the selected lbvserver is bound to the service "
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"

parameters:
  -
    name: selected-vserver
    label: "Select an Existing VServer"
    description: "Load Balancing Application Vservers to be bound to service on the ADC"
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
  -
    name: services
    label: Services
    type: object[]
    required: true
    parameters:
      -
        name: ip
        label: IP address
        type: ipaddress
        required: true
      -
        name: port
        label: Port
        type: tcp-port
        required: true

components:
  -
    name: servicegroup-discovery-comp
    type: object
    repeat: $parameters.selected-vserver.datasource.collections.servicegroup
    repeat-item: svcgrp
    repeat-condition: $svcgrp.attributes.servicegroupname ==  $parameters.selected-vserver.attributes.name + "-svcgrp"
    properties:
      servicegroupname: $svcgrp.attributes.servicegroupname
  -
    name: servicegroup-creation-if-not-exists-comp
    type: ns::servicegroup
    condition: not exists($components.servicegroup-discovery-comp)
    properties:
      servicegroupname: $parameters.selected-vserver.attributes.name + "-svcgrp"
      servicetype: $parameters.selected-vserver.attributes.servicetype
  -
    name: servicegroupmember-comp
    type: ns::servicegroup_servicegroupmember_binding
    repeat: $parameters.services
    repeat-item: service
    properties:
      servicegroupname: if-then-else($components.servicegroup-discovery-comp, $components.servicegroup-discovery-comp.properties.servicegroupname, $components.servicegroup-creation-if-not-exists-comp.properties.servicegroupname)
      ip: $service.ip
      port: $service.port
<!--NeedCopy-->

Dans ce StyleBook, la components section recherche le nom du groupe de services qui correspond au nom du serveur virtuel d’équilibrage de charge sélectionné concaténé avec svcgrp.

Si le nom du serveur virtuel d’équilibrage de charge sélectionné est lbv1, ce StyleBook recherche le groupe de services portant ce nom lbv1-svcgrp. S’il n’est pas trouvé, il crée un groupe de services lbv1-svcgrp et se lie au serveur lbv1 virtuel.

L’expression suivante extrait la liste des groupes de services dans l’instance ADC.

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
  • datasource: fait référence à l’instance ADC sélectionnée gérée par ADM.

  • collections: fait référence aux entités de l’instance ADC.

  • servicegroup: fait référence aux groupes de services de l’instance ADC.

Utiliser une instance ADC comme source de données