Application Delivery Management

StyleBook para crear un servidor virtual de equilibrio de carga

En este ejemplo, diseña 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 del nombre del servidor virtual, la dirección IP y el método de equilibrio de carga aceptan valores definidos por el usuario, es decir, son los parámetros del StyleBook.

Las seis primeras líneas de un StyleBook forman la sección de cabecera. 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 del encabezado incluye los siguientes detalles:

  • nombre: un nombre para este StyleBook.

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

  • display-name: nombre descriptivo del StyleBook que aparece en NetScaler ADM.

  • espacio denombres: 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 al actualizar el StyleBook.

La combinación de nombre , espaciode nombres y 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 NetScaler 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 va a importar) este StyleBook en otros StyleBooks, asegúrese de actualizar también el número de versión en otros StyleBooks, para que utilicen la versión correcta del StyleBook importado.

Importar StyleBooks

La sección que sigue al encabezado se denomina “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 volver a crear la misma configuración en su propio StyleBook.

En este ejemplo, la sección de importación de libros de estilo 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 NetScaler 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 NetScaler ADC que ejecute la versión 10.5 y posterior.

El prefijo utilizado en la sección de libros de estilos de importación es una forma abreviada para hacer referencia a la combinación de espacio de nombres y versión. En este caso, ns hace referencia a netscaler.nitro.config de la versión 10.5. En las secciones posteriores del StyleBook, en lugar de utilizar el espacio de nombres y la versión para hacer referencia al StyleBook importado, puede utilizar la cadena de prefijo elegida, por ejemplo, ns, en el ejemplo anterior.

La versión utilizada en los StyleBooks es la versión NetScaler ADC NITRO. Se puede usar un StyleBook basado en la versión X de Nitro para configurar cualquier Citrix ADC de la versión X o superior.

Nota

Para garantizar que los StyleBooks se puedan usar 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 usen 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 esté basado en una versión de Nitro igual o superior a la de los StyleBooks que importa. Por ejemplo, un StyleBook basado en la versión 10.5 de Nitro no puede depender de, usar o importar un StyleBook basado en la 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 no importe en absoluto el espacio de nombres de Nitro. Esto significa que un StyleBook no necesita definir directamente los componentes de Nitro, sino que puede importar (depender de) los StyleBooks que definen los componentes de Nitro. El StyleBook que importa otros StyleBooks siempre adquiere la versión de Nitro más alta en la jerarquía de sus dependencias y, por lo tanto, podría 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 especifiquen los usuarios de su StyleBook. En este ejemplo, ha creado su StyleBook de forma 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, NetScaler ADM utilizará el atributo name al mostrar este parámetro. Siempre debe definir una etiqueta para los parámetros de modo que pueda controlar cómo se muestran en NetScaler ADM.

Sin embargo, al utilizar las API, el parámetro se designa por su nombre.

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

  • type. Tipo de valor que pueden tomar estos parámetros. Por ejemplo, name y lb-alg pueden tomar un valor de cadena y el valor ip debe ser del tipo ip address. Los parámetros de un StyleBook pueden ser de cualquiera de los siguientes tipos incorporados:
  • cadena. Una variedad de personajes. 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 utilizando los atributos longitud mínima y longitud máxima.
  • número. Un número entero. Puede especificar el número mínimo y máximo que puede tomar este tipo mediante los atributos valor mínimo y valor máximo.
  • booleano. Puede ser verdadera o falsa. Además, ten en cuenta que YAML considera todos los literales como booleanos (por ejemplo, Sí o No).
  • ipaddress. Cadena que representa una dirección IPv4 o IPv6 válida.
  • puerto TCP. Número comprendido entre 0 y 65535 que representa un puerto TCP o UDP.
  • contraseña. Un valor de cadena opaco/secreto. Cuando NetScaler ADM muestra un valor para este parámetro, se muestra como asteriscos (*****).
  • archivo de certificados. Archivo de certificado.
  • archivo de claves. Archivo de clave privada del certificado.
  • archivo. Un parámetro de este tipo requiere que el usuario cargue un archivo, por ejemplo, un archivo de certificado o clave.
  • objeto. Consta de varios elementos y cada uno de ellos es un parámetro. Este tipo se puede utilizar para agrupar varios parámetros relacionados bajo un parámetro principal.
  • requerida. 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. De forma predeterminada, 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 por defecto 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 de valores permitidos para definir valores específicos entre los que el usuario puede elegir al crear una configuración. En este ejemplo, especificó dos valores para el parámetro lb-alg: ROUNDROBIN y LEASTCONNECTION.

Al importar su StyleBook y usarlo, NetScaler ADM muestra un formulario con estos tres parámetros. Los campos que se muestran para nombre e IP permiten introducir el tipo de valor de cadena y dirección IP, y el campo lb-alg se muestra como una lista desplegable con ROUNDROBIN seleccionado como valor predeterminado.

Nota

Además de los tipos integrados, un parámetro puede tener otro StyleBook como tipo. Se trata de 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, se definen 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 atributos principales de un componente son el nombre, el tipo y las propiedades. El tipo de componente determina las propiedades que proporciona este componente. Los componentes son de dos tipos:

  • Tipo incorporado. El sistema proporciona este tipo y no es necesario que lo defina; por ejemplo, los tipos de entidades NITRO son “lbvserver” o “servicegroup”. En este ejemplo, utiliza un tipo de componente integrado.

  • Tipo compuesto. Este tipo es el StyleBook que creó e importó en NetScaler ADM, o el StyleBook predeterminado que se incluye con NetScaler 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 NetScaler ADC Nitro y sus atributos, consulte la documentación de la API REST de NetScaler 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 «libros de estilo de importación». Aunque no es obligatorio, Citrix recomienda utilizar la misma convención en sus propios StyleBooks para mayor coherencia.

Crea su StyleBook

Ahora que ha definido todas las secciones requeridas de este StyleBook, reúna todas para crear 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 de YAML integrado en StyleBooks para validar e importar el contenido de 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 NetScaler ADM y luego usarlo. Para obtener más información, consulte Cómo utilizar StyleBooks definidos por el usuario.

También puede importar este StyleBook a otros StyleBooks (usando 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