El propósito del post de hoy es investigar un poco sobre openstack. Openstack es un conjunto de programas que permiten la creación de entornos virtuales donde desplegar tus aplicaciones.
Mi idea era instalarlo en un contenedor lxc, pero no ha sido posible, nisiquiera activando el modo nested virtualization, así que la única solución ha sido instalarlo en un kvm. Mi objetivo final es ver qué posibilidades me ofrece openstack para reemplazar la infraestructura actual que tengo desplegada con proxmox.
En ésta primera prueba vamos a instalar openstack usando devstack que consiste en un conjunto de scripts que van a instalar todo lo necesario para tener un openstack completo funcionando. Si la cosa avanza, vendrán otros posts de como desplegar openstack en un cluster de 4 maquinas. En el siguiente gráfico podemos ver de que partes se compone openstack
Cada uno de los componentes tiene una función:
– Dashboard: Llamado Horizon, va a ser el interfaz web para gestionar openstack. Está desarrollado en python y django (cosa que me ha alegrado muchísimo!)
– Identity: Llamado Keystone, se encarga de la autenticación de los usuarios en el sistema de openstack y la asignación de permisos.
– Image: Llamado glance, que es donde se pueden consultar las imágenes disponibles
– Object Storage: Llamado swift, que es donde están almacenadas las imagenes
– Compute: Llamado nova, que es quien se encarga de desplegar las imágenes según las necesidades de cómputo que se necesiten
– Network: Llamado neutron, que se encarga de la configuración de la red
– Block storage: Llamado cinder, que es donde se almacenan los datos de nuestras maquinas
Es importante saber de la existencia de los distintos componentes y sus nombres en el caso que queramos montar un clúster con varias máquinas y poder desplegar cada uno de ellos en distintas máquinas.
De momento nos centramos con un único host virtualizado para empezar a trastear y ver qué es lo que hay por detrás.
Partimos de una ubuntu 20.04 (la última LTS), en la documentación recomiendan usar la anterior LTS, la 18.04 al haber estado mas probada, pero vamos a tirar de la última versión para comprobar su estabilidad, además de que se trata de un entorno de prueba que es posible que desaparezca en pocos días :)
Primero actualizaremos el sistema a la última versión:
$ sudo apt update $ sudo apt -y upgrade && sudo apt -y dist-upgrade
Y como todos los templates de proxmox, configuraremos los locales y el tzdata
$ sudo dpkg-reconfigure locales $ sudo dpkg-reconfigure tzdata
Instalaremos git que en el template de proxmox no viene instalado y lo necesitaremos para descargarnos el código de devstack.
$ sudo apt -y install git
A continuación crearemos un usuario llamado stack, lo añadiremos a sudo y nos loguearemos con él
$ sudo useradd -s /bin/bash -d /opt/stack -m stack $ echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack $ sudo su - stack
Ahora nos descargaremos el repositorio con el script de devstack para instalar openstack
stack@openstack:~$ pwd /opt/stack stack@openstack:~$ git clone https://opendev.org/openstack/devstack stack@openstack:~$ cd devstack
Lo siguiente será definir la contraseña para acceder a openstack, para ello primero copiaremos el fichero que se encuentra en samples, local.conf al directorio raiz del script de devstack
stack@openstack:~/devstack$ cp samples/local.conf . stack@openstack:~/devstack$ vi local.conf [[local|localrc]] ADMIN_PASSWORD=secret DATABASE_PASSWORD=$ADMIN_PASSWORD RABBIT_PASSWORD=$ADMIN_PASSWORD SERVICE_PASSWORD=$ADMIN_PASSWORD
Y empezamos la instalación ejecutando el script stack.sh
stack@openstack:~/devstack$ ./stack.sh
El proceso de instalación va a durar entre una o dos horas, dependiendo de la conexión a internet.
Si la instalación ha sido satisfactoria nos va a salir el siguiente mensaje
This is your host IP address: 10.90.234.172 This is your host IPv6 address: ::1 Horizon is now available at http://10.90.234.172/dashboard Keystone is serving at http://10.90.234.172/identity/ The default users are: admin and demo The password: secret Services are running under systemd unit files. For more information see: https://docs.openstack.org/devstack/latest/systemd.html DevStack Version: victoria Change: e3e80633806242f0ae5a22fe5b9cb3e145789d28 Merge "Cleanup VM instances during unstack" 2020-07-02 11:27:25 +0000 OS Version: Ubuntu 20.04 focal
Ahora lo siguiente es trastear con openstack y ver como funciona. Lo siguiente será ver como se despliega en varios servidores. De momento os dejo un link que creo que es por donde se tendrá que tirar
En el titulo has puesto 12.04 y luego usas la 20.04 ;)
arreglado, muchas gracias! a veces el tiempo pasa tan rápido que ni nos enteramos!!!
Muy buen tutorial pero no llego a las Vms por ping, agregue este protocolo al security group, levante ip flotante y asocie el router, pero nada , alguna idea ?
el ubuntu lo instalas desde proxmox como una VM o como CT