Configuración de StyleBook

Utilice una instancia de ADC como fuente de datos

Puede utilizar las instancias de ADC 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 ADC administrada en ADM es una fuente de datos de forma predeterminada. Puede empezar a utilizar estas fuentes de datos en sus StyleBooks si necesita datos de un ADC existente gestionado por ADM al crear 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 lbvserver
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

En el ejemplo, el parámetro datum se usa para seleccionar cualquier instancia de ADC administrada por ADM. La fuente de datos managed-adc integrada le permite recuperar datos de cualquier instancia de ADC administrada por Citrix ADM.

En el StyleBook, puede acceder a cualquier configuración desde la instancia de ADC seleccionada. Además, puede usar esa configuración al crear o actualizar configuraciones en el mismo ADC o en una instancia de ADC diferente; depende de la instancia de ADC de destino seleccionada.

Seleccione la colección de una fuente de datos:

En la instancia de ADC 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 lbvserver en la instancia de ADC 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 custom datasource environment
      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 ADC administradas por ADM y los usuarios de StyleBook pueden seleccionar cualquier ADC al crear o actualizar el paquete de configuración.

Fuente de datos ADC integrada sin recopilación

Este StyleBook utiliza el ADC seleccionado iterando sobre todos los lbvserver. Selecciona los servidores virtuales SSL y establece la versión permitida en cada servidor virtual.

La siguiente expresión le permite recorrer en iteración la lista de lbvserver en la instancia de ADC.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: hace referencia a los tipos de entidad de la instancia ADC.

  • lbvserver: hace referencia a la lista de servidores virtuales de equilibrio de carga de la instancia ADC.

Para cada uno lbvserver que cumpla la condición (servicetype == SSL), actualiza la configuración de SSL de los servidores virtuales para permitir versiones de SSL específicas.

Uso de la fuente de datos integrada con la colección

parameters:
  -
    name: selected-lbvserver
    label: Select an existing ADC
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

En este ejemplo, el parámetro datum se usa para seleccionar tanto la instancia de ADC como el lbvserver de la fuente de datos managed-adc.

Al definir un tipo de colección en la sección parameters, los usuarios de StyleBook pueden seleccionar la instancia de ADC y una entidad específica de una colección de esa instancia.

Fuente de datos de instancia ADC 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 ADC lbvserver, como name, servicetype, ipv46, etc.

Ejemplo:

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

Esta expresión recupera el nombre del servidor virtual de equilibrio de carga seleccionado. Para obtener más información sobre las entidades ADC (colecciones) y sus atributos, consulte la referencia de la API NITRO de Citrix ADC.

Selecciona una lista de la colección:

Además del elemento seleccionado por el usuario de StyleBook, también puede acceder a cualquier elemento de la misma colección o de colecciones diferentes en la instancia de ADC seleccionada. Para acceder a otra colección de esa instancia de ADC, utilice 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 ADC 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

A continuación, se muestra un ejemplo de StyleBook para demostrar cómo utilizar la instancia ADC gestionada 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 ADC using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the ADC. 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 ADC.

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->
  • datasource: hace referencia a la instancia de ADC seleccionada administrada por ADM.

  • collections: hace referencia a las entidades de la instancia de ADC.

  • servicegroup: hace referencia a los grupos de servicios de la instancia ADC.

Utilice una instancia de ADC como fuente de datos