Application Delivery Management

StyleBook para crear un servidor virtual de equilibrio de carga

En este ejemplo, diseñará un StyleBook básico que crea un servidor virtual de equilibrio de carga del tipo de protocolo HTTP y escucha en el puerto 80. Los parámetros de nombre del servidor virtual, dirección IP y método de equilibrio de carga aceptan valores definidos por el usuario, es decir, son los parámetros del StyleBook.

Encabezado

Las primeras seis líneas de un StyleBook comprenden la sección de encabezado. En este ejemplo, la sección de encabezado se escribe de la siguiente manera:

name: lb-vserver
description: This StyleBook defines a load balancing virtual server configuration.
display-name: Load Balancing Virtual Server (HTTP)
namespace: com.example.stylebooks
schema-version: "1.0"
version: "0.1"
<!--NeedCopy-->

La sección de encabezado incluye los siguientes detalles:

  • name: Un nombre para este StyleBook.

  • description: Una descripción que define lo que hace este StyleBook. Esta descripción aparece en Citrix ADM.

  • display-name: Nombre descriptivo para el StyleBook que aparece en Citrix ADM.

  • namespace: Un espacio de nombres forma parte de un identificador único de un StyleBook para evitar colisiones de nombres.

  • schema-version: Siempre toma el valor “1.0” en esta versión.

  • version: El número de versión del StyleBook. Puede cambiar el número de versión cuando actualice el StyleBook.

La combinación de nombre, espacio de nombresy versión identifica de forma única un StyleBook en el sistema. No puede tener dos StyleBooks con la misma combinación de nombre, espacio de nombres y versión en Citrix ADM. Sin embargo, puede tener dos StyleBooks con el mismo nombre y versión pero espacios de nombres diferentes, o con el mismo espacio de nombres y versión pero nombres diferentes.

Nota

Tenga en cuenta que ha actualizado su StyleBook y que tiene un número de versión actualizado. Ahora, si se refiere a (es decir, si está importando) este StyleBook en otros StyleBooks, asegúrese de actualizar el número de versión en otros StyleBooks también, para que utilicen la versión correcta del StyleBook importado.

Importar StyleBooks

La sección después del encabezado se llama “import-stylebooks”. En esta sección, debe declarar el espacio de nombres y el número de versión de cualquier otro StyleBook al que quiera hacer referencia en su StyleBook actual. Esto le permite importar y reutilizar otros StyleBooks en lugar de reconstruir la misma configuración en su propio StyleBook.

En este ejemplo, la sección import-stylebooks se escribe de la siguiente manera:

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  prefix: ns
  version: "10.5"
<!--NeedCopy-->

Cada StyleBook debe hacer referencia al espacio de nombres netscaler.nitro.config si utiliza directamente cualquiera de los objetos de configuración NITRO. Este espacio de nombres contiene todos los tipos de Citrix ADC NITRO, como LBVServer.Como se admiten las versiones de software 10.5 y posteriores, puede utilizar StyleBook para crear y ejecutar configuraciones en cualquier instancia de Citrix ADC que ejecute la versión 10.5 y posterior.

El prefijo utilizado en la sección import-stylebooks es una abreviatura para referirse a la combinación de espacio de nombres y versión. En este caso, ns se refiere a netscaler.nitro.config de la versión 10.5. En las secciones posteriores de su StyleBook, en lugar de usar el espacio de nombres y la versión para hacer referencia al StyleBook importado, puede usar la cadena de prefijo elegida, por ejemplo, ns, en el ejemplo anterior.

La versión utilizada en los StyleBooks es la versión Citrix ADC NITRO. Un StyleBook basado en Nitro versión X se puede utilizar para configurar cualquier Citrix ADC que sea la versión X o superior.

Nota

Para asegurarse de que los StyleBooks se pueden utilizar para configurar cualquier instancia de Citrix ADC de la versión 10.5 o posterior, Citrix recomienda que, para obtener la máxima compatibilidad, importe el espacio de nombres Nitro 10.5 en los StyleBooks que utilicen directamente los StyleBooks integrados de Nitro (espacio de nombres: Netscaler.nitro.config, versión: 10.5).

Es importante que un StyleBook que importe otros StyleBooks tenga que basarse en una versión Nitro que esté en la misma o superior versión que los StyleBooks que importa. Por ejemplo, un StyleBook basado en Nitro versión 10.5 no puede depender ni usar ni importar un StyleBook basado en 11.1. Pero un StyleBook basado en la versión 11.1 puede importar un StyleBook basado en cualquier versión inferior a 11.1.  

También es posible que un StyleBook que no importe el espacio de nombres Nitro en absoluto. Eso significa que un StyleBook no necesita definir directamente los componentes de Nitro, pero puede importar (depender de) StyleBooks que defina los componentes de Nitro. El StyleBook que importa otros StyleBooks siempre adquiere la versión Nitro más alta en la jerarquía de sus dependencias y, por lo tanto, puede usarse para configurar los ADC de Citrix que sean de esa versión o superior.

Parámetros

La sección de parámetros le permite declarar todos los parámetros que necesita en su StyleBook. Usted, como desarrollador de StyleBook, tiene que decidir cuál es la entrada que quiere que los usuarios de su StyleBook especifiquen. En este ejemplo, ha creado su StyleBook de una manera que requiere que sus usuarios proporcionen el nombre del servidor virtual, su dirección IP y el método de equilibrio de carga.

La sección de parámetros tendría el siguiente aspecto:

parameters:
 -
  name: name
  type: string
  label: Application Name
  description: Name of the application configuration.
  required: true

 -
  name: ip
  type: ipaddress
  label: Application Virtual IP (VIP)
  description: Application VIP that the clients access.
  required: true

-
  name: lb-alg
  type: string
  label: LoadBalancing Algorithm
  description: Choose the load balancing algorithm (method) used for load balancing client request between the application servers.
  allowed-values:
   - ROUNDROBIN
   - LEASTCONNECTION
   default: ROUNDROBIN
<!--NeedCopy-->

Nota

Si no proporciona la etiqueta de un parámetro, Citrix ADM utiliza el atributo name al mostrar este parámetro. Siempre debe definir una etiqueta para los parámetros para poder controlar cómo se muestran en Citrix ADM.

Sin embargo, cuando se utilizan las API, el parámetro se designa por su nombre.

En esta sección, ha declarado tres parámetros indicados por sus valores de atributo de nombre: Nombre para nombre del servidor virtual, ip para dirección IP del servidor virtual y lb-alg para el método de equilibrio de carga.

  • tipo. Tipo de valor que estos parámetros pueden tomar. Por ejemplo, name y lb-alg pueden tomar un valor de cadena y el valor ip tiene que ser de tipo ip address. Los parámetros de un StyleBook pueden ser de cualquiera de los siguientes tipos incorporados:

  • cadena. Una matriz de caracteres. Si no se especifica una longitud, el valor de cadena puede tener cualquier número de caracteres. Sin embargo, puede limitar la longitud de un tipo de cadena mediante los atributos min-length y max-length.

  • número. Un número entero. Puede especificar el número mínimo y máximo que puede tomar este tipo mediante los atributos min-value y max-value.

  • booleano. Puede ser verdadero o falso. Además, tenga en cuenta que todos los literales son considerados por YAML como booleanos (por ejemplo, Sí o No).

  • dirección IP. Cadena que representa una dirección IPv4 o IPv6 válida.

  • puerto TCP. Un número entre 0 y 65535 que representa un puerto TCP o UDP.

  • contraseña. Un valor de cadena opaque/secret. Cuando Citrix ADM muestra un valor para este parámetro, se muestra como asteriscos (*****).

  • archivocertfile. Archivo de certificado.

  • archivo de claves. Archivo de clave privada de certificado.

  • archivo. Un parámetro de este tipo requiere que el usuario cargue un archivo, por ejemplo, un certificado o un archivo de clave.

  • objeto. Consiste en múltiples elementos y cada uno de estos elementos es un parámetro. Este tipo se puede utilizar para agrupar varios parámetros relacionados bajo un parámetro principal.

  • requerido. Indica si un parámetro es obligatorio u opcional. Si se establece en true, el parámetro es obligatorio y el usuario tiene que proporcionar un valor para este parámetro al crear configuraciones con este StyleBook. Por defecto, todos los parámetros son opcionales. En este ejemplo, name e ip son parámetros obligatorios, mientras que lb-alg es un parámetro opcional, cuyo valor predeterminado es “ROUNDROBIN”.

Utilice el atributo predeterminado para asignar un valor predeterminado a un parámetro opcional. Al crear una configuración, si un usuario no especifica un valor, se utiliza el valor predeterminado. Por ejemplo, para el parámetro lb-alg, el valor predeterminado es ROUNDROBIN.

Utilice el atributo allowed-values para definir valores específicos entre los que un usuario puede elegir al crear una configuración. En este ejemplo, ha especificado dos valores para el parámetro lb-alg: ROUNDROBIN y LEASTCONNECTION.

Al importar su StyleBook y usarlo, Citrix ADM muestra un formulario con estos tres parámetros. Los campos mostrados para name e ip permiten introducir el tipo de valor string e ipaddress, y el campo lb-alg se muestra como una lista desplegable con ROUNDROBIN seleccionado como valor predeterminado.

Nota

Además de los tipos incorporados, un parámetro puede tener otro StyleBook como su tipo. Esta es una forma de reutilizar los parámetros definidos en otros StyleBooks.

Componentes

La última sección de este StyleBook se llama la sección de componentes y se considera como la sección más importante del StyleBook. En esta sección, defina los objetos de configuración que debe crear el SyleBook.

Para este ejemplo, debe escribir la sección de componentes de la siguiente manera:

components:
 -
  name: lbvserver-comp
  type: ns::lbvserver
  properties:
   name: $parameters.name
   servicetype: HTTP
   ipv46: $parameters.ip
   port: 80
   lbmethod: $parameters.lb-alg
<!--NeedCopy-->

Este ejemplo contiene solo un componente. Los principales atributos de un componente son name, type y properties. El tipo de componente determina las propiedades que proporciona este componente. Los componentes son de dos tipos:

  • Tipo incorporado. Este tipo es proporcionado por el sistema y no es necesario definirlo, por ejemplo, los tipos de entidad NITRO “lbvserver” o “servicegroup”. En este ejemplo, está utilizando un tipo de componente integrado.

  • Tipo compuesto. Este tipo es el StyleBook que creó e importó en Citrix ADM, o el StyleBook predeterminado que se incluye con Citrix ADM. Puede obtener más información sobre los StyleBooks compuestos en.Crear un StyleBook compuesto

En este ejemplo, ha definido un componente denominado lbvserver-comp. Este componente es de tipo ns: :lbvserver(un tipo Nitro incorporado), donde “ns” es el prefijo que hace referencia al espacio de nombres netscaler.nitro.config y la versión 10.5 que había especificado en la sección import-stylebooks, y “lbvserver” es un recurso Nitro en este espacio de nombres.

Las propiedades definidas aquí son los atributos del recurso “lbvserver”. Para obtener más información sobre todos los recursos disponibles de Citrix ADC Nitro y sus atributos, consulte Documentación de la API de REST de Citrix ADC NITRO.

Las propiedades de esta sección incluyen los atributos obligatorios del recurso “lbvserver” y le permiten especificar valores para estos atributos. En este ejemplo, está especificando valores estáticos para servicetype y port, mientras que las propiedades name, ipv46 y lbmethod obtienen sus valores de los parámetros de entrada. En el resto del StyleBook, puede hacer referencia a los nombres de parámetros definidos en la sección de parámetros mediante la expresión $parameters.<parameter-name>, por ejemplo, $parameters.ip.

Nota

Por convención, el prefijo “ns” siempre se usa para designar un espacio de nombres Citrix ADC Nitro en la sección “import-stylebooks”. Aunque no es obligatorio, Citrix recomienda utilizar la misma convención en sus propios StyleBooks para mayor coherencia.

Crea su StyleBook

Ahora que has definido todas las secciones requeridas de este StyleBook, reúne todas para construir su primer StyleBook. Copie y pegue el contenido de StyleBook en un editor de texto y, a continuación, guarde el archivo como lb-vserver.yaml. Citrix recomienda utilizar el validador YAML integrado en StyleBooks para validar e importar el contenido YAML.

El contenido completo del archivo lb-vserver.yaml se reproduce a continuación:

name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  version: "10.5"
  prefix: ns
 -
  namespace: com.citrix.adc.stylebooks
  version: "1.0"
  prefix: stlb

parameters:
 -
  name: name
  label: "Application Name"
  description: "Give a name to the application configuration."
  type: string
  required: true
 -
  name: vip-ipaddress
  label: "Load Balancer IP Address"
  description: "The Application VIP that clients access"
  type: ipaddress
  required: true
 -
  name: lb-alg
  label: LB Algorithm
  description: Load Balancing Algorithm
  type: string
  default: ROUNDROBIN
  allowed-values:
   - ROUNDROBIN
   - LEAST-CONNECTION

components:
 -
  name: lbvserver-comp
  description: This StyleBook component (a Builtin Nitro StyleBook) builds a Citrix ADC load balancing virtual server configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80
<!--NeedCopy-->

Para comenzar a usar su StyleBook para crear configuraciones, debe importarlo a Citrix ADM y luego usarlo. Para obtener más información, consulte Cómo usar StyleBooks definidos por los usuarios.

También puede importar este StyleBook a otros StyleBooks (mediante la construcción import-stylebooks). O bien, puede modificar este StyleBook para incluir más parámetros y componentes como se describe en la siguiente sección.

StyleBook para crear un servidor virtual de equilibrio de carga