Configuration de StyleBook

Utiliser une instance NetScaler comme source de données

Vous pouvez utiliser les instances NetScaler gérées comme sources de données. Le type de source de données managed-adc est un type intégré qui peut être facilement utilisé comme source de données dans NetScaler Console. Chaque instance NetScaler gérée dans NetScaler Console 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 d’un NetScaler existant géré par NetScaler Console lors de la création de packs de configuration.

Dans la définition du StyleBook, spécifiez le paramètre de type intégré datum. Vous pouvez 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 de cette source.

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

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

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

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

Accéder à la collection depuis une source de données :

Dans l’instance NetScaler 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 des entités lbvserver sur l’instance NetScaler sélectionnée. Par exemple, vous pouvez itérer sur cette liste pour sélectionner un lbvserver spécifique 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 NetScaler instance
      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 NetScaler gérées par NetScaler Console et les utilisateurs de StyleBook peuvent sélectionner n’importe quel NetScaler lors de la création ou de la mise à jour du pack de configuration.

Source de données NetScaler intégrée sans collection

Ce StyleBook utilise le NetScaler sélectionné et itère sur toutes les entités lbvserver. Il sélectionne les serveurs virtuels SSL et définit les versions de protocole SSL autorisées sur chaque serveur virtuel.

L’expression suivante vous permet d’itérer sur la liste des entités lbvserver dans l’instance NetScaler.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections : Fait référence à tous les types d’entités sur l’instance NetScaler. Par exemple, csvserver, lbmonitor, servicegroup, etc.

  • lbvserver : Fait référence à la liste des entités de serveur virtuel d’équilibrage de charge dans l’instance NetScaler.

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

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

Dans cet exemple, le paramètre datum est utilisé pour permettre à un utilisateur de sélectionner à la fois l’instance NetScaler et un lbvserver spécifique à partir du type de source de données managed-adc.

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

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

Accéder à un attribut de l’élément sélectionné :

Lorsque l’utilisateur de StyleBook sélectionne un serveur virtuel, l’expression suivante dans 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, le datum sélectionné est lbvserver. Ainsi, vous pouvez accéder à n’importe quel attribut de l’entité NetScaler lbvserver tel que name, servicetype, ipv46, etc.

Exemple :

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

Cette expression récupère l’adresse IP du serveur virtuel d’équilibrage de charge sélectionné. Pour plus d’informations sur les entités NetScaler (collections) et leurs attributs, consultez la référence de l’API NetScaler NITRO.

Sélectionner plusieurs éléments d’une collection :

La section des paramètres suivante permet aux utilisateurs de StyleBook de sélectionner plusieurs éléments d’une collection.

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

Dans cet exemple, le paramètre datum est utilisé pour définir le tableau de sources de données. L’utilisateur peut sélectionner un ou plusieurs lbvserver à partir d’une seule instance NetScaler ou de plusieurs instances NetScaler.

L’extrait de code ci-dessous décrit la manière d’accéder aux éléments sélectionnés et à leurs attributs.

components:
  -  name: sslvserver-comp
    type: ns::sslvserver
    repeat:
      repeat-list: $parameters.selected-lbvservers
      repeat-item: vserverObj
    properties:
      name: $vserverObj.attributes.name
      ssl2: DISABLED
      ssl3: DISABLED
      tls1: DISABLED
      tls11: ENABLED
      tls12: ENABLED
<!--NeedCopy-->

Accéder à une collection par la référence de l’élément sélectionné :

En plus de permettre à un utilisateur de StyleBook de sélectionner une entité spécifique sur une instance NetScaler gérée, vous pouvez également accéder à n’importe quelle entité des mêmes collections ou de collections différentes sur l’instance NetScaler sélectionnée. Pour accéder à une autre collection sur cette instance NetScaler, utilisez l’expression suivante dans la section components :

$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 de l’instance NetScaler sélectionnée.

Et l’expression suivante renvoie une liste de toutes les liaisons entre les lbvserver et les servicegroup :

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

Exemple de StyleBook avec une collection

Voici un exemple de StyleBook pour démontrer comment utiliser l’instance NetScaler 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 NetScaler using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the NetScaler. 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

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
    components:
      -
        name: lbvserver-servicegroup-binding
        type: ns::lbvserver_servicegroup_binding
        properties:
          name: $parameters.selected-vserver.attributes.name
          servicegroupname: $parent.properties.servicegroupname
<!--NeedCopy-->

Dans ce StyleBook, la section components vérifie 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 nommé lbv1-svcgrp. S’il n’est pas trouvé, il crée un groupe de services lbv1-svcgrp et le lie au serveur virtuel lbv1.

L’expression suivante récupère la liste des groupes de services dans l’instance NetScaler.

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->

Dans cette expression :

  • datasource : Fait référence à l’instance NetScaler sélectionnée gérée par NetScaler Console.

  • collections : Fait référence à toutes les entités de l’instance NetScaler.

  • servicegroup : Fait référence aux groupes de services dans l’instance NetScaler.

Filtrage des données de collection :

La section des paramètres suivante explique comment spécifier des filtres sur une collection de sources de données intégrées dans la définition du StyleBook. Elle permet aux utilisateurs de StyleBook de sélectionner un élément spécifique à partir d’une collection filtrée.

parameters:
  -  name: selected-lbvserver
    label: Select an existing lbvserver
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
      collection-filters:
        protocol: SSL

<!--NeedCopy-->

Dans cet exemple, le paramètre datum est utilisé pour permettre à un utilisateur de sélectionner à la fois l’instance NetScaler et un lbvserver spécifique ayant le protocole SSL à partir du type de source de données managed-adc.

Une fois que l’utilisateur de StyleBook a sélectionné un serveur virtuel, n’importe quel attribut de l’élément sélectionné peut être accédé de la même manière que celle expliquée dans la section précédente.

Utiliser une instance NetScaler comme source de données