Servicio Citrix Application Delivery Management

Roles de instancia

En Citrix Application Delivery Management (ADM), puede haber un caso en el que tenga que configurar varias instancias de Citrix ADC para una sola aplicación, pero también en el que cada instancia de ADC requiera una configuración diferente para implementarlas. Un ejemplo de este caso es el predeterminado de Microsoft Skype for Business StyleBook.

Los StyleBooks admiten actualmente la capacidad de crear un paquete de configuración y aplicar la misma configuración en varias instancias de Citrix ADC. Tal caso en el que la configuración es idéntica en todas las instancias ADC, puede denominarse configuración simétrica.

Ahora, con la función “roles de instancia” de StyleBooks, puede crear una configuración asimétrica, es decir, un paquete de configuración que se puede aplicar en varias instancias de ADC, pero con configuraciones diferentes en diferentes instancias de ADC.

Cuando se utiliza un StyleBook con función de roles de instancia para crear un paquete de configuración, a cada instancia de ADC de un paquete de configuración se le puede asignar un rol diferente. Esta función determina los objetos de configuración del paquete de configuración que recibirá la instancia de ADC.

Puntos a tener en cuenta:

  • El conjunto de roles de instancia en un StyleBook se define al crear el StyleBook.
  • Los roles se asignan a una instancia de ADC específica al crear o actualizar el paquete de configuración.

Sección de roles de destino

Se introduce una nueva sección en un StyleBook llamada “roles de destino”, donde se declaran todos los roles admitidos por el StyleBook.

Esta sección suele colocarse después de la sección “Import-StyleBooks” de un StyleBook, y antes de la sección de parámetros.

En el siguiente ejemplo de StyleBook, se definen dos roles en la sección “roles de destino”: A y B.

target-roles:

  -
   name: A
   name: B
     min-targets: 2
     max-targets: 5

Puede ver que el rol B también define dos sub-propiedades opcionales, min-targets y max-targets.

Aunque estas dos subpropiedades son opcionales, los objetivos mínimos especifican el número mínimo obligatorio de instancias ADC a las que se debe asignar este rol al crear un paquete de configuración a partir de este StyleBook, y los objetivos máximos especifican el número máximo de instancias ADC a las que se puede asignar este rol al crear un paquete de configuración de este StyleBook.

Si no se especifican estas subpropiedades, no hay límite en el número de instancias ADC que se pueden configurar para ese rol. Si min-targets = 0, la configuración asociada a ese rol es opcional y si min-targets = 1, esa configuración es obligatoria y al menos se debe configurar una instancia ADC para ese rol.

Rol “predeterminado”

Además de los roles explícitamente definidos, hay un rol implícito que tienen todos los StyleBooks, y ese rol se llama como un rol predeterminado. Este rol se puede usar como cualquier otro rol en un StyleBook. Al crear un paquete de configuración, si una instancia ADC no está asignada con un rol específico, la instancia se asigna implícitamente al rol “predeterminado”. La instancia recibirá ahora cualquier objeto de configuración generado por componentes que tengan el rol “predeterminado”.

Componentes con roles

Después de definir los roles que un StyleBook puede admitir (incluido el rol “predeterminado”), los roles se pueden usar en la sección de componentes de un StyleBook. Si quiere que un componente se implementación solo en instancias ADC que desempeñan un determinado rol, puede especificar el atributo roles como parte del componente, como se ilustra en el siguiente ejemplo de componente:

  -
    name: C1
    type: ns::lbvserver
    roles:
      - A
    properties:
      name: lb1
      servicetype: HTTP
      ipv46: 1.1.1.1
      port: 80

En el ejemplo anterior, el componente genera un “lbvserver” que se implementará en instancias que desempeñen el rol A. Tenga en cuenta que el atributo roles de un componente es una lista, y a un componente se le pueden asignar múltiples roles. Estos roles se habrían declarado en la sección “roles de destino” del StyleBook.

Nota: Si un componente de un StyleBook no especifica un atributo de rol, los objetos de configuración generados por el componente se crean en todas las instancias de Citrix ADC, independientemente de su rol. Puede utilizar esta función eficazmente para crear objetos de configuración que se pueden aplicar a todas las instancias de un paquete de configuración.

Supongamos que hay un StyleBook con dos roles definidos: A y B, y que contiene cuatro componentes.

  • El componente C1 tiene los roles A y B
  • El componente C2 tiene el rol B
  • El componente C3 no tiene ningún rol definido
  • El componente C4 tiene el rol “predeterminado”

La sección de componentes de este StyleBook se reproduce a continuación:

components:
  -
    name: C1
    type: ns::lbvserver
    roles:
      - A
      - B
    properties:
      name: lb1
      servicetype: HTTP
      ipv46: 1.1.1.1
      port: 80
  -
    name: C2
    type: ns::lbvserver
    roles:
      - B
    properties:
      name: lb2
      servicetype: HTTP
      ipv46: 12.12.12.12
      port: 80
  -
    name: C3
    type: ns::lbvserver
    properties:
      name: lb3
      servicetype: HTTP
      ipv46: 13.13.13.13
      port: 80
  -
    name: C4
    type: ns::lbvserver
    roles:
      - default
    properties:
      name: lb4
      servicetype: HTTP
      ipv46: 14.14.14.14
      port: 80

Tenga en cuenta que el componente C3 no tiene un rol definido, lo que significa que el componente se implementa en todas las instancias independientemente de su rol. Por otro lado, el componente C4 tiene el rol “predeterminado”, lo que significa que se aplica a cualquier instancia que no tenga asignado un rol explícito.

Ahora, considere que quiere crear un paquete de configuración mediante este StyleBook e implementarlo en cinco instancias ADC. En esta etapa, puede asignar los roles a las instancias de la siguiente manera:

  • El rol A se asigna a las instancias T1, T2, T3 y T4
  • El rol B se asigna a las instancias T2, T3 y T4
  • La instancia T5 no tiene asignada ninguna función

La siguiente imagen resume las asignaciones de roles y muestra la configuración resultante que recibirá cada instancia de ADC:

Imagen localizada

Tenga en cuenta que el componente C3 se implementa en todas las instancias independientemente del rol, ya que este componente no tenía atributo roles.

La siguiente imagen muestra la asignación de roles al crear un paquete de configuración de ejemplo:

Imagen localizada

También puede utilizar la función “Ejecución en seco” al crear un paquete de configuración para ver y verificar la asignación correcta de roles y los objetos de configuración que se crearán en cada instancia de ADC.

Crea su StyleBook

El contenido completo del StyleBook “demo-target-roles” se proporciona a continuación:

---
name: demo-target-roles
namespace: com.example.stylebooks
version: "1.2"
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"
parameters:
  -
    name: appname
    type: string
    required: true
    key: true
target-roles:
  -
    name: A
  -
    name: B
    min-targets: 2
    max-targets: 5
components:
  -
    name: C1
    type: ns::lbvserver
    roles:
      - A
      - B
    properties:
      name: lb1
      servicetype: HTTP
      ipv46: 1.1.1.1
      port: 80
  -
    name: C2
    type: ns::lbvserver
    roles:
      - B
    properties:
      name: lb2
      servicetype: HTTP
      ipv46: 12.12.12.12
      port: 80
  -
    name: C3
    type: ns::lbvserver
    properties:
      name: lb3
      servicetype: HTTP
      ipv46: 13.13.13.13
      port: 80
  -
    name: C4
    type: ns::lbvserver
    roles:
      - default
    properties:
      name: lb4
      servicetype: HTTP
      ipv46: 14.14.14.14
      port: 80

La siguiente imagen muestra los objetos creados para un paquete de configuración de ejemplo:

Imagen localizada

Uso de API

Al utilizar la API REST, puede especificar roles para cada instancia de ADC al crear o actualizar el paquete de configuración de la siguiente manera. En el bloque “destinos”, especifique el UUID de la instancia específica de Citrix ADC en la que quiere implementar los componentes individuales.

"targets": [
            {
             "id": "<ADC-UUID>",
             "roles": ["A"]
            },
           ]

Se proporciona una API REST de muestra completa para su referencia.

POST/<ADM-IP>/stylebook/nitro/v1/config/stylebooks/com.example.stylebooks/1.2/demo-target-roles/configpacks

{
  "configpack": {
     "parameters": {
     "appname": "app1"
    },
     "targets": [
        {
          "id": "f53c35c3-a6bc-4619-b4b4-ad7ab6a94ddb",
        "roles": ["A"]
        },
        {
          "id": "c08caa1c-1011-48aa-b8c7-9aed1cd38ed0",
          "roles": ["A", "B"]
        },
        {
          "id": "88ac90cb-a5cb-445b-8617-f83d0ef6174e",
          "roles": ["A", "B"]
        },
        {
          "id": "bf7b0f74-7a83-4856-86f4-dcc951d3141e",
          "roles": ["A", "B"]
        },
        {
          "id": "fa5d97ab-ca29-4adf-b451-06e7a234e3da",
          "roles": ["default"]
        }
      ]
    }
}

Roles de instancia