Configuración de StyleBook

Uso de una instancia de NetScaler como origen de datos

Puedes usar las instancias de NetScaler administradas como orígenes de datos. El tipo de origen de datos integrado managed-adc se puede usar fácilmente como origen de datos en NetScaler Console. Cada instancia de NetScaler administrada en NetScaler Console es un origen de datos de forma predeterminada. Puedes empezar a usar estos orígenes de datos en tus StyleBooks si necesitas datos de un NetScaler existente administrado por NetScaler Console al crear paquetes de configuración.

En la definición de StyleBook, especifica el parámetro de tipo integrado datum. Puedes usar los tipos de origen de datos en tu StyleBook. Los usuarios de StyleBook pueden seleccionar un origen de datos que se pueda usar para recuperar datos de ese origen.

Uso del origen de datos integrado sin recopilación

parameters:
  -  name: selected-adc
    label: Seleccionar un NetScaler existente
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

En el ejemplo, el parámetro datum se usa para seleccionar cualquier instancia de NetScaler administrada por NetScaler Console. El origen de datos integrado managed-adc te permite recuperar datos de cualquier instancia de NetScaler administrada por NetScaler Console.

En tu StyleBook, puedes acceder a cualquier configuración de la instancia de NetScaler seleccionada. Y puedes usar esa configuración al crear o actualizar configuraciones en la misma instancia de NetScaler o en una diferente; depende de la instancia de NetScaler de destino seleccionada.

Acceder a la recopilación desde un origen de datos:

En la instancia de NetScaler seleccionada, para acceder a una recopilación, usa 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 en la instancia de NetScaler seleccionada. Por ejemplo, puedes iterar sobre esta lista para seleccionar un lbvserver específico que cumpla una determinada condición.

Ejemplo de StyleBook sin recopilació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: Seleccionar una instancia de NetScaler
      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.

Origen de datos de NetScaler integrado 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 te permite iterar a través de la lista de entidades lbvserver en la instancia de NetScaler.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: Se refiere a todos los tipos de entidad en la instancia de NetScaler. Por ejemplo, csvserver, lbmonitor, servicegroup, etc.

  • lbvserver: Se refiere a la lista de entidades de servidor virtual de equilibrio de carga en la instancia de NetScaler.

Uso del origen de datos integrado con recopilación

parameters:
  -  name: selected-lbvserver
    label: Seleccionar un lbvserver existente
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

En este ejemplo, el parámetro datum se usa para permitir que un usuario seleccione tanto la instancia de NetScaler como un lbvserver específico del tipo de origen de datos managed-adc.

Cuando defines un tipo de recopilación en la sección parameters, los usuarios de StyleBook pueden seleccionar la instancia de NetScaler y una entidad específica de una recopilación en esa instancia.

Origen de datos de instancia integrado con recopilación

Acceder a un atributo del elemento seleccionado:

Cuando el usuario de StyleBook selecciona un servidor virtual, la siguiente expresión en tu StyleBook puede acceder a cualquier atributo del elemento seleccionado.

$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->

En este ejemplo, el datum seleccionado es lbvserver. Por lo tanto, puedes acceder a cualquier atributo de la entidad de NetScaler lbvserver, como name, servicetype, ipv46, 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 de NetScaler (recopilaciones) y sus atributos, consulta la referencia de la API NITRO de NetScaler.

Seleccionar varios elementos de una recopilación:

La siguiente sección de parámetros permite a los usuarios de StyleBook seleccionar varios elementos de una recopilación.

parameters:
  -  name: selected-lbvservers
    label: Seleccionar lbvservers existentes
    type: datum[]
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

En este ejemplo, el parámetro datum se usa para definir la matriz de origen de datos. El usuario puede seleccionar uno o más lbvservers de una única instancia de NetScaler o de varias instancias de NetScaler.

El siguiente fragmento de código muestra la forma de acceder a los elementos seleccionados y sus atributos.

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

Acceder a una recopilación por la referencia del elemento seleccionado:

Además de permitir que un usuario de StyleBook seleccione una entidad específica en una instancia de NetScaler administrada, también puedes acceder a cualquier entidad de la misma recopilación o de diferentes recopilaciones en la instancia de NetScaler seleccionada. Para acceder a otra recopilación en esa instancia de NetScaler, usa la siguiente expresión en la sección components:

$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 de conmutación de contenido de la instancia de NetScaler seleccionada.

Y la siguiente expresión devuelve una lista de todas las vinculaciones entre lbvservers y servicegroups:

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->

Ejemplo de StyleBook con una recopilación

El siguiente es un ejemplo de StyleBook para demostrar cómo usar la instancia de NetScaler administrada como origen de datos:

name: bind-lb-to-servicegroup-using-ADC-as-datasource
namespace: com.citrix.adc.stylebooks
version: "1.1"
display-name: "StyleBook de equilibrio de carga HTTP/SSL con vinculación de servicio"
description: "Este StyleBook define una configuración típica de aplicación con equilibrio de carga donde permitimos al usuario seleccionar un lbvserver existente en NetScaler usando el parámetro de tipo datum. Luego, se crea un grupo de servicios para el lb seleccionado si no existe en NetScaler. Finalmente, el lbvserver seleccionado se vincula al servicio"
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"

parameters:
  -
    name: selected-vserver
    label: "Seleccionar un VServer existente"
    description: "VServers de aplicación de equilibrio de carga que se vincularán al servicio en el 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-->

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 comprueba si existe un grupo de servicios con el nombre lbv1-svcgrp. Si no se encuentra, crea un grupo de servicios lbv1-svcgrp y lo vincula con el servidor virtual lbv1.

La siguiente expresión obtiene la lista de grupos de servicios en la instancia de NetScaler.

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->

En esta expresión:

  • datasource: Se refiere a la instancia de NetScaler seleccionada administrada por NetScaler Console.

  • collections: Se refiere a todas las entidades en la instancia de NetScaler.

  • servicegroup: Se refiere a los grupos de servicios en la instancia de NetScaler.

Filtrado de datos de recopilación:

La siguiente sección de parámetros explica cómo especificar filtros en una recopilación de origen de datos integrada en la definición de StyleBook. Permite a los usuarios de StyleBook seleccionar un elemento específico de una recopilación filtrada.

parameters:
  -  name: selected-lbvserver
    label: Seleccionar un lbvserver existente
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
      collection-filters:
        protocol: SSL

<!--NeedCopy-->

En este ejemplo, el parámetro datum se usa para permitir que un usuario seleccione tanto la instancia de NetScaler como un lbvserver específico con protocolo SSL del tipo de origen de datos managed-adc.

Después de que el usuario de StyleBook selecciona un servidor virtual, se puede acceder a cualquier atributo del elemento seleccionado de la misma manera que se explicó en la sección anterior.

Uso de una instancia de NetScaler como origen de datos