Configuración de StyleBook

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 datumparámetro se usa para seleccionar cualquier instancia de NetScaler administrada por ADM. La managed-adcfuente 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.

Fuente de datos NetScaler integrada sin recopilació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 ejemplo csvserver, 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 parameterssección, los usuarios de StyleBook pueden seleccionar la instancia de NetScaler y una entidad específica de una colección de esa instancia.

Fuente de datos de instancia integrada con recopilación

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 lbvserverNetScaler , ipv46comoname,, 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 componentssecció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.

Utilice una instancia de NetScaler como fuente de datos