Shutterstock 664638928

Instalar Openstack en Ubuntu con Devstack


Josemoreno 300x180
José Moreno

 

Compartiendo con unos colegas surge un proyecto de cloud que tenía en mente para unas clases, implementar una nube privada, la mayoría de los profesionales de tecnología que conocemos les viene a la mente el uso de proveedores grandes como Azure, AWS o Google, sin embargo para una entidad educativa pública, no sé cuenta con el presupuesto para adquirir estos servicios.

Sabemos de la existencia de múltiples herramientas que nos permiten desplegar un modelo IAAS, infraestructura como servicio, el cliente obtiene recursos como servidores, aplicaciones y redes administradas en demanda por el proveedor de servicios.

Algunos de los proyectos que evaluamos fueron los proyectos:

Finalmente decidimos usar proxmox pero por razones fuera del alcance de este demostración, como precio de licencias, cantidad de servidores físicos a disposición, entre otras.

OpenStack es una solución de cloud computing del tipo IaaS de código abierto. Su misión es proveer una solución flexible tanto para nubes públicas como privadas, sean estas de cualquier tamaño, y para esto se consideran dos requerimientos básicos: las nubes deben ser simples de implementar y masivamente escalables.

Existen múltiples instalaciones formas de instalación e implementación de openstack

Al igual que podemos tener un instalación multinodos o singlenode, la imagen a continuación es un ejemplo de multinode, para este articulo usaremos todo en un solo servidor (singlenode)

Fuente: https://github.com/bilelmsekni/OpenStack-Folsom-Install-guide/blob/master/OpenStack_Folsom_Install_Guide_WebVersion.rst#25-others

Devstack instalara todos los componentes necesarios para openstack

Fuente: http://vmartinezdelacruz.com/en-pocas-palabras-como-funciona-openstack/

  • Horizon – Dashboard: panel web para el manejo de instancias y volúmenes. Este servicio es realmente una aplicación web desarrollada en django que permite comunicarse con las diferentes APIs de OpenStack de una forma sencilla. OpenStack Dashboard es fundamental para usuarios noveles y en general para realizar acciones sencillas sobre las instancias.

  • Nova – Compute Service: es el controlador de la estructura básica del Cloud. Es el encargado de iniciar las instancias (máquinas virtuales) de los usuarios y grupos. También es el servicio encargado de la gestión de la red virtual para cada instancia o para las múltiples instancias que formen parte de un proyecto (tenant).

  • Glance – Image Service: proporciona un catálogo y un repositorio de imágenes de discos virtuales. Muy utilizado por Nova y de forma casi exclusiva, aunque es un servicio técnicamente opcional, cualquier infraestructura de cloud de un tamaño considerable lo necesita.

  • Neutron – Network Service: provee redes virtuales como servicio entre dispositivos administrados por otros servicios de OpenStack, como puede ser una máquina virtual de Nova. Permite a los usuarios crear sus propias redes y luego vincularlas con los dispositivos que deseen.

  • Keystone – Identity Service: es un servicio usado para la autenticación entre el resto de componentes. Este servicio utiliza un sistema de autenticación basado en tokens y se incorporó en la versión 2012.1 de OpenStack.

  • Cinder – Block Storage Service: De forma complementaria al almacenamiento de objetos que realiza swift, este componente de nombre Cinder es el encargado del almacenamiento de bloques, que se utilizan en las instancias de OpenStack, es equivalente al servicio de pago Elastic Block Storage (EBS) de Amazon.

Requerimientos
  • Ubuntu server 18.04 estamors utilizando un vps de Vultr.com

  • Memoria mínima de 4GB utilizaremos 16GB

  • Al menos 2 vCPU usaremos 6vCPU

  • Almacenamiento de 10GB usaremos 320GB

1. Instalación Devstack

Debemos crear un usuario que no utilice contraseña para la prueba de devstack

useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

Nos logueamos como el usuario stack para realizar la instalación

Procedemos a actualizar y vamos a clonar el repositorio de devstack

apt update
git clone https://git.openstack.org/openstack-dev/devstack

Vamos a copiar un archivo de configurar

cp samples/local.conf ./local.conf