Instalación de OpenStack – Alta Disponibilidad (Creación de imágenes)

Últimamente he estado trabajando en la integración de Kolla como una alternativa adicional para la instalación de los servicios de OpenStack en el proyecto de XCI en OPNFV. Kolla ofrece el despliegue de servicios de OpenStack en contenedores Docker en lugar de contenedores Linux como lo hace OpenStack-Ansible. Este proyecto fue creado con el fin de simplificar el numero de variables utilizadas en el proceso de configuración.

Esta serie de artículos pretende recopilar los requisitos e instrucciones necesarias para la instalación de los servicios de OpenStack en una configuración de Alta Disponibilidad, es decir, tres nodos con roles de controlador y dos nodos con roles de computo, además un nodo adicional como medio para la ejecución de instrucciones.

Cabe mencionar que OpenStack Kolla puede ser visto como dos proyectos independientes, uno el cual controla el proceso de creación de imágenes de Docker y otro el que utiliza estas imágenes para realizar el despliegue de los servicios de OpenStack. Aunque es posible utilizar las imágenes de Docker provistas por la comunidad para el despliegue de los servicios de OpenStack, en esta ocasión las imágenes serán generadas a partir de repositorios remotos de los distintos proyectos de OpenStack.

Lo primero a realizar es la instalación de dependencias (Docker y modulos de Python) en el nodo llamado OPNFV, el cual mantendrá el catalogo de imágenes utilizadas por el resto de los nodos. La documentación oficial proporciona los siguientes pasos.

Instalación de Docker

$ sudo apt install -y software-properties-common linux-image-extra-$(uname -r) linux-image-extra-virtual
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt update
$ sudo apt install -y docker-ce

Instalación de OpenStack Kolla desde codigo fuente

$ sudo apt install -y python2.7 python-dev build-essential
$ curl -sL https://bootstrap.pypa.io/get-pip.py | sudo python
$ git clone https://github.com/openstack/kolla
$ cd kolla
$ sudo pip install .

Es posible generar una plantilla que facilite la configuración del proceso de creación de imágenes. Esta plantilla puede ser obtenida a traves de la ejecución de la herramienta tox utilizando el argumento de genconfig como valor de entorno.

Generacion de etc/kolla/kolla-build.conf

$ sudo pip install tox 
$ tox -e genconfig

En esta plantilla podemos especificar la ubicación del código fuente que sera utilizado por las imagenes. Por ejemplo, si se desea que la imagen para los servicios de Neutron sea generada a partir el código fuente del repositorio del día 28 de mayo del 2018. Solo es necesario localizar la sección [neutron-base] y modificar los siguientes valores de type, location y reference en el archivo kolla-build.conf.

[neutron-base]
type = git
location = https://git.openstack.org/openstack/neutron
reference = f723dfadeecc6f13cd3a1277dc13e1580a4ea5d0

Por ultimo solo queda iniciar el proceso de creación de imágenes, este se realiza por medio de el binario kolla-build que fue generado al momento de instalar Kolla.

kolla-build --config-file etc/kolla/kolla-build.conf

* Nota adicional: Las instrucciones previamente mencionadas han sido guardadas en el repositorio vagrant-kolla.