Post-Image

Orquestando instancias en Openstack

Desde hace algún tiempo me dedico a la automatización de cierto proyectos que tienen como fundamento la capacidad de funcionar de forma autónoma, es decir, pueden adaptarse a las necesidades que se soliciten en cada momento. Para poder realizar este tipo de tareas debemos conocer como orquestar toda nuestra plataforma.

En primer lugar debemos saber exactamente de que hablamos cuando nos referimos a orquestar, para ello se define el verbo orquestar como organizar, dirigir o coordinar un plan. En el ámbito tecnológico se utiliza la orquestación para la planificación de despliegues ya bien sean de forma automática o manual.

En nuestro caso en concreto pretendemos que sea nuestra plataforma la que cree de forma organizada nuestra nueva instancia y para ello vamos a hacer uso del componente de Openstack denominado Heat, que nos permite mediante un template escrito en formato YAML ejecutar instrucciones en nuestra plataforma cloud.

Heat necesita dos ficheros para la creación de una nueva orquestación, el primero será la plantilla de servicios a aprovisionar con todos los detalles o variables que van a ser introducidas mediante formulario o vía fichero, y en segundo lugar un fichero de environment en donde se declaran las variables a utilizar.

Tenemos dos formas diferentes de utilizar el componente de Heat, por un lado disponemos del cliente de Openstack por CLI y por otro a través del panel de control de Heat (mediante el dashboard de Horizon), he publicado algunas plantillas con todos los ficheros necesarios para ejecutarlo en github https://github.com/alefnode/heat-templates

Si quisiéramos desplegar un Nginx con PHP72 en una máquina Centos 7 tan solo tendríamos que loguearnos en nuestro panel de control e introducir los ficheros de “stack” y “env” y rellenar los campos que nos solicita en el segundo paso, claro que también podríamos ejecutar la siguiente linea en nuestra consola (modificándola con nuestros parámetros) y ahorraríamos tiempo.

1
openstack stack create --parameter instance_name=Prueba --parameter key_name=hadrianweb-auto --parameter flavor=Mini --parameter image_name="Centos 7" --parameter internal_net=cf57bce4-5518-4c07-a192-857045372155 --parameter internal_subnet=5249f549-dbad-44b9-aa29-068fa92dd467 --parameter domain_name=prueba.alefnode.com -t openstack-heat-nginx-php72.yml prueba