Las pilas son utilizadas para definir plantillas que nos permitan crear de manera automática recursos disponibles en Soax. Permitiendo así, crear con un solo click varios recursos al mismo tiempo de forma automatizada.
Con la función de pilas en el menú de orquestación, los desarrolladores de aplicaciones pueden definir los parámetros en archivos .yaml para automatizar la implementación de infraestructuras, servicios y aplicaciones. Las plantillas son archivos estáticos que se pueden utilizar directamente para crear una pila.
Para crear una pila, se accede a la pantalla "Orquestación > Pilas/Stacks" del panel lateral.
Una vez en la pantalla, pulsando el botón "Crear pila" aparece el formulario de creación.
Existen 2 tipos de configuraciones:
El contenido puede ser adjuntado en un fichero o copiado como texto. Es recomendable tener un fichero, el cual es más fácil de manejar y controlar los cambios y modificaciones realizados.
Una vez seleccionado, tras pulsar el botón "Confirmar" se solicitará el nombre de la pila, el tiempo de espera de creación de todos los recursos de la pila y la contraseña del usuario.
Si no hay ningún problema en la definición ni en la sintásix de la pila, comenzará el proceso de creación de la pila. Pasado el tiempo necesario, los recursos se crearán correctamente.
El tiempo de creación puede variar en función de los recursos que van a ser creados.
Para facilitar la compresión del funcionamiento de la herramienta, se muestran algunos ejemplos de uso de la misma.
En el siguiente ejemplo veremos como crear una red con una subred con un CIDR 10.20.30.0/24 y con los DNS 8.8.8.8 y 8.8.4.4.
heat_template_version: 2013-05-23
description: Network Template
resources:
new_net:
type: OS::Neutron::Net
properties:
name: "WAN"
new_subnet:
type: OS::Neutron::Subnet
properties:
name: "WANsubnet"
cidr: "10.20.30.0/24"
dns_nameservers: [ "8.8.8.8", "8.8.4.4" ]
enable_dhcp: true
ip_version: 4
network_id: { get_resource: new_net }
A continuación, podemos ver un ejemplo de una plantilla en la que generaremos un servidor con un sabor de 1 vCPU y 2 GB de RAM (p.001vCPUs_002RAM), al que le asignaremos un volumen creado a partir de la imagen (NombreDeLaImagen) con 30 GB, el grupo de seguridad (NO_RESTRICTIONS_SG) y se generará en la red (WAN).
heat_template_version: 2013-05-23
description: Basic Server with 30GB volume from NombreDeLaImagen.
resources:
bootable_volume:
type: OS::Cinder::Volume
properties:
name: Volumen_raiz
size: 30
image: NombreDeLaImagen
Server-1:
type: OS::Nova::Server
properties:
name: Server_1
flavor: p.001vCPUs_002RAM
security_groups:
- NO_RESTRICTIONS_SG
availability_zone: nova
networks:
- network: WAN
block_device_mapping:
- device_name: vda
volume_id: { get_resource: bootable_volume }
delete_on_termination: false
Para más ejemplos, recomendamos ver la página avanzada, donde se muestran ejemplos más complejos y completos, además de enlaces a la documentación oficial.