Configuración de StyleBook
Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

StyleBook para crear una configuración básica de equilibrio de carga

En esta sección, diseñará un StyleBook que cree una configuración de equilibrio de carga que incluye un servidor virtual de equilibrio de carga, un grupo de servicios y una lista de servicios. El StyleBook enlaza los servicios al grupo de servicios y enlaza el grupo de servicios al servidor virtual.

Para crear una configuración básica de equilibrio de carga, utilice el ejemplo StyleBook,lb-vserver que creó en StyleBook para crear un servidorvirtual de equilibrio de carga y guárdelo como basic-lb-config.yaml.

Para crear este StyleBook, actualice la sección de encabezado. Esta sección es similar a la sección de encabezado que creó en StyleBook para crear un servidor virtual de equilibrio de carga.

Cambie el valor del nombre a basic-lb-config. Actualice la descripción y el nombre de visualización para describir el StyleBook. No es necesario cambiar los valores del espacio de nombres ni de la versión. Como ha cambiado el nombre, se crea un identificador único para este StyleBook en el sistema.

name: basic-lb-config namespace: com.example.stylebooks version: "0.1" display-name: Load Balancing Configuration description: This StyleBook defines a simple load balancing configuration. schema-version: "1.0"

Importar StyleBooks

La sección Import-StyleBooks sigue siendo la misma. Se refiere al espacio de nombres netscaler.nitro.config para utilizar los objetos de configuración NITRO.

import-stylebooks: - namespace: netscaler.nitro.config prefix: ns version: "10.5"

Parámetros

Actualice la sección de parámetros para añadir dos parámetros más.

Los parámetros definen la lista de servicios o servidores y el puerto en el que los servicios escuchan. Los tres primeros parámetros name, ip y lb-alg siguen siendo los mismos.

parameters: - name: name type: string label: Application Name description: Give a name to the application configuration. required: true - name: ip type: ipaddress label: Application Virtual IP (VIP) description: The Application VIP that clients access required: true - name: lb-alg type: string label: LoadBalancing Algorithm description: Choose the loadbalancing algorithm (method) used for loadbalancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true - name: svc-port type: tcp-port label: Server Port description: The TCP port open on the application servers to receive requests. default: 80

El parámetro svc-serversse agrega para aceptar una lista de direcciones IP de los servidores de fondo de la aplicación. svc-servers es un parámetro obligatorio, como se indica en required: true.

El segundo parámetro, svc-port, indica el número de puerto en el que escuchan los servidores. El número de puerto predeterminado es 80, a menos que el usuario lo especifique.

Componentes

También debe actualizar la sección de componentes para definir más componentes, de modo que utilicen los dos parámetros nuevos y creen la configuración completa de equilibrio de carga.

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 + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg components: - name: svcg-comp type: ns::servicegroup properties: name: $parameters.name + "-svcgrp" servicetype: HTTP components: - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $parent.parent.properties.name servicegroupname: $parent.properties.name - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: str($parameters.svc-port) servicegroupname: $parent.properties.name

En este ejemplo, el componente original lbvserver-comp (del ejemplo anterior) ahora tiene un componente secundario llamado svcg-comp. El componente svcg-comp también tiene dos componentes secundarios. Al anidar un componente dentro de otro componente, el componente anidado puede crear objetos de configuración haciendo referencia a los atributos del componente principal. El componente anidado puede crear uno o más objetos para cada objeto creado en el componente principal.

El componente svcg-comp se utiliza para crear un grupo de servicios en la instancia de NetScaler utilizando los valores proporcionados para los atributos del recurso servicegroup. En este ejemplo, especificará el valor estático de servicetype, mientras que name obtiene su valor del parámetro de entrada. Consulte el nombre del parámetro definido en la sección de parámetros mediante la notación $parameters.name + “-svcgrp”, donde “-svcgrp” se añade (concatena) al nombre definido por elusuario.

El componente svcg-comp tiene dos componentes secundarios, lbvserver-svg-binding-comp y members-svcg-comp.

El primer componente secundario, lbvserver-svg-binding-comp, se utiliza para enlazar un objeto de configuración entre el grupo de servicios creado por su componente principal y el servidor virtual de equilibrio de carga (lbvserver) creado por el componente principal del principal. La notación $principal, también llamada referencia principal, se utiliza para hacer referencia a entidades en los componentes principal. Por ejemplo, servicegroupname: $parent.properties.name hace referencia al grupo de servicios creado por el componente principal svcg-compy el nombre: $parent.parent.properties.name hace referencia al servidor virtual creado por el componente principal lbvserver-comp.

El componente members-svcg se utiliza para vincular los objetos de configuración de la lista de servicios al grupo de servicios creado por el componente principal. La creación de objetos de configuración enlazados se logra mediante el uso de la construcción derepeticiónde StyleBook para repetir la lista de servidores especificada en el parámetro svc-servers. Durante la iteración, este componente StyleBook crea un objeto de configuración NITRO de tipo servicegroup_servicegroupmember_binding para cada servicio (al que se hace referencia como srv en la construcción repetiat-item ) del grupo de servicios, y establece el atributo ip en cada Objeto de configuración NITRO a la dirección IP del servidor correspondiente.

Por lo general, puede utilizar los componentes fijos de repetición y repeticiónde elementoen un componente para que ese componente genere varios objetos de configuración del mismo tipo. Puede asignar un nombre de variable al componente fijorepetiat-item, por ejemplo srv, para designar el valor actual en la iteración. Este nombre de variable se hace referencia en las propiedades del mismo componente o en componentes secundarios como$<varname>, por ejemplo, $srv.

En el ejemplo anterior, el anidamiento de los componentes ayuda a crear fácilmente la configuración. También puede crear la configuración sin anidar, como se muestra en el siguiente ejemplo:

components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: servicegroupname: $parameters.name + "-svcgrp" servicetype: HTTP - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.servicegroupname - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: 80 servicegroupname: $components.svcg-comp.properties.servicegroupname

En este caso, aunque los componentes no estén anidados, la configuración de NetScaler generada es la misma que la de los componentes anidados utilizados anteriormente.

El orden en que se declaran los componentes en el StyleBook no afecta al orden de creación de los objetos de configuración. En este ejemplo, los componentes svcg-comp y lbvserver-comp, aunque se declararon en último lugar, deben crearse antes de compilar el segundo componente lbvserver-svg-binding-comp, ya que hay referencias directas a estos componentes en el segundo componente.

Nota

Por convención, los nombres de los StyleBooks, los parámetros, las sustituciones, los componentes y las salidas aparecen en minúsculas. Cuando contienen muchas palabras, están separadas por un carácter “-“. Por ejemplo lb-bindings, app-name, rewrite-config, y así sucesivamente. Otra convención es sufijar nombres de componentes con -comp cadena.

Resultados

En esta sección, debe especificar qué expone el StyleBook a los usuarios (o a otros StyleBooks) después de crear una configuración. Por ejemplo, puede especificar que se muestren los objetos lbvserver y servicegroup de configuración que crea este StyleBook.

outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

La sección de salidas de un StyleBook es opcional. No es necesario que un StyleBook devuelva las salidas. Sin embargo, al devolver algunos componentes internos como salidas, permite que cualquier StyleBooks que importe este StyleBook tenga más flexibilidad. Esta funcionalidad resulta útil a la hora de crear un StyleBook compuesto.

Nota

Se recomienda exponer todo un componente del StyleBook en la sección de salidas, en lugar de solo una propiedad de un componente (por ejemplo, exponer todo el $components.lbvserver-comp en lugar de solo el nombre,$components.lbvserver-comp.properties.name). Agregue también una descripción a la salida que explique lo que representa la salida específica.

Crea su StyleBook

Ahora que ha definido todas las secciones requeridas de este StyleBook, reúna todas para crear su segundo StyleBook. Ya ha guardado este archivo StyleBook como basic-lb-config.yaml. Citrix recomienda utilizar el validador YAML integrado en StyleBooks para validar e importar el contenido YAML.

El contenido completo del archivo basic-lb-config.yaml se reproduce de la siguiente manera:

name: basic-lb-config namespace: com.example.stylebooks version: "0.1" display-name: Load Balancing Configuration description: This StyleBook defines a simple load balancing configuration. schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config version: "10.5" prefix: ns parameters: - name: name type: string label: Application Name description: Give a name to the application configuration. required: true - name: ip type: ipaddress label: Application Virtual IP (VIP) description: The Application VIP that clients access required: true - name: lb-alg type: string label: LoadBalancing Algorithm description: Choose the loadbalancing algorithm (method) used for loadbalancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true - name: svc-port type: tcp-port label: Server Port description: The TCP port open on the application servers to receive requests. default: 80 components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: servicegroupname: $parameters.name + "-svcgrp" servicetype: HTTP - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.servicegroupname - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: 80 servicegroupname: $components.svcg-comp.properties.servicegroupname outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

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 y utilizar sus propiedades como se describe en la siguiente sección.

La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.