Configuración de StyleBook

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
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"
<!--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 Console.
  • display-name: nombredescriptivo del StyleBook que aparece en la consola de NetScaler.
  • espacio denombres: un espacio de nombres forma parte de un identificador único de un StyleBook para evitar colisiones de nombres.
  • schema-version: en esta versión siempre toma el valor “1.0”.
  • 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, espacio de nombresy versión identifica de forma exclusiva 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 Console. 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 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 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 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 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 NITRO. Un StyleBook basado en NITRO versión X se puede utilizar para configurar cualquier NetScaler que sea la versión X o superior.

Nota

Para asegurarse de que los StyleBooks se pueden utilizar para configurar cualquier instancia de NetScaler 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 sus StyleBooks que utilicen directamente los StyleBooks integrados 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 versión o superior a los StyleBooks que importa. Por ejemplo, un StyleBook basado en NITRO versión 10.5 no puede depender, utilizar o 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. Esto significa que un StyleBook no necesita definir directamente los componentes NITRO, sino que puede importar (depender de) StyleBooks que define los componentes de NITRO. El StyleBook que importa otros StyleBooks siempre adquiere la versión NITRO más alta de la jerarquía de sus dependencias. Además, se usa para configurar NetScalers 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
  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
<!--NeedCopy-->

Nota

Si no proporciona la etiqueta de un parámetro, NetScaler Console 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 NetScaler Console.

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 se refiere al tipo de valor que pueden tomar estos parámetros. Por ejemplo, nombre y lb-alg puede tomar un valor de cadena y el valor IP tiene que ser de tipo dirección IP. Los parámetros de un StyleBook pueden ser de cualquiera de los siguientes tipos incorporados:
  • cadena: 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 utilizando los atributos longitud mínima y longitud máxima.
  • number: 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 verdadero o falso. 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.
  • tcp-port: número entre 0 y 65535 que representa un puerto TCP o UDP.
  • contraseña: un valor de cadena opaco/secreto. Cuando NetScaler Console muestra un valor para este parámetro, se muestra con asteriscos (*****).
  • certfile: un archivo de certificado.
  • keyfile: un 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 claves.
  • objeto: consta de varios 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.
  • obligatorio: 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 Console muestra un formulario con estos tres parámetros. Los campos mostrados para nombre e IP permiten introducir cadena y ipaddress tipo de valor, y el lb-alg campo 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, definirá los objetos de configuración que debe crear StyleBook.

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

components:
 -
  name: lbvserver-comp
  description: This StyleBook component (a Builtin Nitro StyleBook) builds a NetScaler lbvserver configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80
<!--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: Este tipo es proporcionado por el sistema y no tiene que definirlo, por ejemplo, los tipos de entidad NITRO lbvserver o servicegroup. En este ejemplo, está utilizando un tipo de componente integrado.
  • Tipocompuesto : este tipo es el StyleBook que creó e importó a NetScaler Console, o el StyleBook predeterminado que se suministra con NetScaler Console. 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 lbvserver recurso. Para obtener más información sobre todos los recursos de NetScaler NITRO disponibles y sus atributos, consulte la documentación de la API REST de NetScaler NITRO.

Las propiedades de esta sección incluyen los atributos obligatorios del lbvserver recurso y le permiten especificar valores para estos atributos. En este ejemplo, está especificando valores estáticos para servicetype y port, mientras que el nombre, ipv46 y lbmethod las propiedades 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 utiliza para designar un espacio de nombres de NetScaler 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 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 NetScaler lbvserver configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80
<!--NeedCopy-->

Para empezar a usar su StyleBook para crear configuraciones, debe importarlo a NetScaler Console y, a continuación, 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