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 datum
paramètre est utilisé pour sélectionner n’importe quelle instance NetScaler gérée par ADM. La managed-adc
source 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.
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 exemplecsvserver
,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 parameters
section, les utilisateurs de StyleBook peuvent sélectionner l’instance NetScaler et une entité spécifique dans une collection de cette instance.
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é lbvserver
NetScaler , ipv46
tel 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 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 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.