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. 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 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 provenant d’un NetScaler existant géré par NetScaler Console 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 NetScaler
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

Dans l’exemple, le datumparamètre est utilisé pour sélectionner n’importe quelle instance NetScaler gérée par ADM. La managed-adcsource de données intégrée vous permet de récupérer des données depuis n’importe quelle instance NetScaler gérée par NetScaler Console.

Dans votre StyleBook, vous pouvez accéder à n’importe quelle configuration à partir de l’instance NetScaler 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 NetScaler ou sur une autre instance NetScaler ; cela dépend de l’instance NetScaler cible sélectionnée.

Sélectionnez la collection à partir d’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 de l’instance NetScaler 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 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 collecte

Ce StyleBook utilise le NetScaler sélectionné et effectue des itérations 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 de parcourir la liste des entités lbvserver de l’instance NetScaler.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections : fait référence à tous les types d’entités de 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 collecte

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 une instance lbvserver spécifique à partir du type de source de données managed-adc.

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

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

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. Vous pouvez donc accéder à n’importe quel attribut de l’ entité lbvserverNetScaler , ipv46tel quename, servicetype, 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électionnez une liste de la collection :

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é provenant de collections identiques ou 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 componentssection :

$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 NetScaler 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 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
  -
    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 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 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 de 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 ADM.

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

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

Utiliser une instance NetScaler comme source de données