Utilice una instancia de NetScaler como fuente de datos
Puede usar las instancias de NetScaler administradas como fuentes de datos. managed-adc
es un tipo de fuente de datos integrada que se puede utilizar fácilmente como fuentes de datos en ADM. Cada instancia de NetScaler gestionada en NetScaler Console es una fuente de datos de forma predeterminada. Puede empezar a utilizar estas fuentes de datos en sus StyleBooks si necesita datos de un NetScaler existente gestionado por NetScaler Console mientras crea paquetes de configuración.
En la definición de StyleBook, especifique el parámetro de texto integrado datum
. Por lo tanto, puede utilizar los tipos de fuentes de datos de su StyleBook. Los usuarios de StyleBook pueden seleccionar una fuente de datos que se pueda utilizar para recuperar datos de esa fuente.
Uso de la fuente de datos integrada sin recopilación
parameters:
-
name: selected-adc
label: Select an existing NetScaler
type: datum
required: true
data-source:
type: managed-adc
<!--NeedCopy-->
En el ejemplo, el datum
parámetro se usa para seleccionar cualquier instancia de NetScaler administrada por ADM. La managed-adc
fuente de datos integrada le permite recuperar datos de cualquier instancia de NetScaler gestionada por NetScaler Console.
En su StyleBook, puede acceder a cualquier configuración desde la instancia de NetScaler seleccionada. Además, puede usar esa configuración al crear o actualizar configuraciones en la misma instancia de NetScaler o en una instancia de NetScaler diferente; depende de la instancia de NetScaler de destino seleccionada.
Seleccione la colección de una fuente de datos:
En la instancia de NetScaler seleccionada, para acceder a una colección, utilice la siguiente expresión:
$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->
Ejemplo:
$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
Esta expresión devuelve la lista de entidades lbvserver
de la instancia de NetScaler seleccionada. Por ejemplo, puede repetir esta lista para seleccionar un lbvserver
específico que cumpla una condición determinada.
Ejemplo de StyleBook sin colección
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-->
La GUI del paquete de configuración muestra las instancias de NetScaler administradas por NetScaler Console y los usuarios de StyleBook pueden seleccionar cualquier NetScaler al crear o actualizar el paquete de configuración.
Este StyleBook usa el NetScaler seleccionado e itera sobre todas las entidades lbvserver
. Selecciona los servidores virtuales SSL y establece las versiones de protocolo SSL permitidas en cada servidor virtual.
La siguiente expresión le permite recorrer en iteración la lista de entidades lbvserver
de la instancia de NetScaler.
repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
-
collections
: Hace referencia a todos los tipos de entidad de la instancia de NetScaler. Por ejemplocsvserver
,lbmonitor
,servicegroup
, etc. -
lbvserver
: Hace referencia a la lista de entidades de servidores virtuales con equilibrio de carga en la instancia de NetScaler.
Uso de la fuente de datos integrada con la colección
parameters:
-
name: selected-lbvserver
label: Select an existing lbvserver
type: datum
required: true
data-source:
type: managed-adc
collection: lbvserver
<!--NeedCopy-->
En este ejemplo, el parámetro datum
se usa para permitir al usuario seleccionar tanto la instancia de NetScaler como una instancia lbvserver
específica del tipo de fuente de datos managed-adc
.
Al definir un tipo de colección en la parameters
sección, los usuarios de StyleBook pueden seleccionar la instancia de NetScaler y una entidad específica de una colección de esa instancia.
Seleccione un atributo de la colección:
Cuando el usuario de StyleBook selecciona un servidor virtual, la siguiente expresión del StyleBook puede acceder a cualquier atributo del elemento seleccionado.
$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->
En este ejemplo, el seleccionado datum
es lbvserver
. Por lo tanto, puede acceder a cualquier atributo de la entidad lbvserver
NetScaler , ipv46
comoname
,, servicetype
, etc.
Ejemplo:
$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->
Esta expresión recupera la IP del servidor virtual de equilibrio de carga seleccionado. Para obtener más información sobre las entidades (colecciones) de NetScaler y sus atributos, consulte la referencia de la API NetScaler NITRO.
Seleccione una lista de la colección:
Además de permitir que un usuario de StyleBook seleccione entidades específicas en una instancia de NetScaler administrada, también puede acceder a cualquier entidad de la misma colección o de diferentes colecciones en la instancia de NetScaler seleccionada. Para acceder a otra colección de esa instancia de NetScaler, utilice la siguiente expresión de la components
sección:
$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->
Ejemplo:
$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->
Esta expresión devuelve la lista de servidores virtuales que cambian de contenido de la instancia de NetScaler seleccionada.
Además, la siguiente expresión devuelve una lista de todos los enlaces entre lbvservers
y servicegroups
:
$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->
Ejemplo de StyleBook con una colección
El siguiente es un ejemplo de StyleBook para demostrar cómo usar la instancia de NetScaler administrada como fuente de datos:
---
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-->
En este StyleBook, la sección components
comprueba el nombre del grupo de servicios que coincide con el nombre del servidor virtual de equilibrio de carga seleccionado concatenado con svcgrp
.
Si el nombre del servidor virtual de equilibrio de carga seleccionado es lbv1
, este StyleBook busca el grupo de servicios con ese nombre lbv1-svcgrp
. Si no lo encuentra, crea un grupo de servicios lbv1-svcgrp
y se vincula con el servidor virtual lbv1
.
La siguiente expresión obtiene la lista de grupos de servicios de la instancia de NetScaler.
repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
En esta expresión:
-
datasource
: Hace referencia a la instancia de NetScaler seleccionada que administra ADM. -
collections
: Hace referencia a todas las entidades de la instancia de NetScaler. -
servicegroup
: Hace referencia a los grupos de servicios de la instancia de NetScaler.