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.
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.
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.