Primeros pasos en Openstack #1 Entorno Multi-Nodo Openstack en HA

Entorno HA Multi-Node con Openstack

En esta serie de videos vamos a acercar la tecnología de despliegues de infraestructura Cloud basados en Openstack. Realizaremos desde un primer paso inicial de infraestructura en HA Multinodo hasta el despliegue de todos los módulos específicos orientados a PaaS o arquitecturas Multi-Región mas compleja

Configuración y arquitectura de Nodos 

  • 1 x  Nodo Gestión – 2 vCPU 2 GB Ram
  • 3 x Nodo Contro – 2 vCPU 8 GB Ram
  • 1 x Nodo Computo – 2 vCPU 8 GB Ram (Capacidad para virtualizar)

Interfaces y uso: 

  • Ens160: Interfaz configurada en “Bridge” con conectividad a internet. Configuraremos las interfaces “kolla_external_vip_interface” . Esta red es la que expone los servicios hacia el exterior.Configuraremos también una VIP que utilizará nuestro Keepalived para dar Ha entre nodos de control
  • Ens192: Interfaz configurada para la comunicación interna entre los hosts. No debe tener salida a internet y esta configurada en nuestro Vmware como “Host Only“. Expondremos la interfaz “network_interface y api_interface“. Configuraremos también una VIP que utilizará nuestro Keepalived para dar Ha entre nodos de control
  • Ens256: Storage Interface. Configurada como internal “Host Only” y podremos usarla en siguientes capitulos para configurar un ceph external y conectarlo el storage separado através de este rango interno
  • Ens161: Red sin configurar para Openstack en la que se utilizará para que genere sus rangos o redes tipo vlan para comunicarlas con el exterior. 

Instalamos dependencias

Actualizamos las dependencias y paquetes en función de nuestra versión de S.O. En nuestro caso para Rocky 9

sudo dnf install git python3-devel libffi-devel gcc openssl-devel python3-libselinux

Instalamos dependencias para instalar en entorno virtual

  1.  Creamos y activamos nuestro entorno virtual:
python3 -m venv /path/to/venv
source /path/to/venv/bin/actívate
  1. Instalamos y actualizamos la ultima versión de Pip:
pip install -U pip
  1. Instalamos la versión “ansible-core”. Kolla-ansible requiere al menos Ansible 8 (ansible core 2.15) o Ansible 9 (ansible core 2.16)
pip install 'ansible-core>=2.15,<2.16.99'

Instalamos Kolla-Ansible

  1. Instalamos kolla-ansible y sus dependencias con pip
pip install git+https://opendev.org/openstack/kolla-ansible@master

      2. Creamos el directorio /etc/kolla

sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
  1. Copiamos el archivo globals.yml y passwords.yml a /etc/kolla
cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
  1. Copiamos los archivos all-in-one y multinode inventory para trabajar
cp /path/to/venv/share/kolla-ansible/ansible/inventory/* .

Globals.yml

A continuación detallamos todas las variables del archivo globals que necesitamos modificar para la configuración base de nuestro openstack

  • enable_openstack_core: “yes”
  • horizon_keystone_multidomain: “True”
  • kolla_base_distro: “rocky”
  • openstack_release: “2024.1”
  • kolla_internal_vip_address: “10.0.0.209”
  • kolla_external_vip_address: “192.168.0.209”
  • network_interface: “ens192”
  • kolla_external_vip_interface: “ens160”
  • api_interface: “ens192”
  • neutron_external_interface: “ens161”
  • nova_compute_virt_type: “qcow”

Preparación Inventory & Hosts

El archive multinode es donde definiremos nuestra configuración de hosts y que servicio correrá en cada uno. Añadiremos los nodos a su subsección de inventory y aplicaremos el grupo control para desplegar los servicios:

  • Network
  • Monitoring
  • Storage
  • Otros
También debemos configurar en nuestro nodo de gestión el archivo de configuración /etc/hosts con la resolución de nombres de todos los nodos, en neustro caso los definiremos por la red interna. 

Instalamos Ansible Galaxy y generamos archivo Passwords

En este punto instalamos las dependencias de Ansible Galaxy y generamos el archivo passwords.yml para todos los servicios. 

kolla-ansible install-deps

kolla-genpwd

Prepara y Despliega Kolla

Preparamos todos los hosts para instalar todos los paquetes de versiones, configuraciones y archivos necesarios en cada uno de los hosts. 

kolla-ansible -i ./all-in-one bootstrap-servers

kolla-ansible -i ./all-in-one prechecks

kolla-ansible -i ./all-in-one deploy

Accede a tu Openstack

En este punto, a través de tu navegador y tu VIP External podrás acceder a tu Openstack: 

http://192.168.0.209/auth/login/

La password de Admin podrás encontrarla en tu archivo generado como passwords.yml con el comando

cat /etc/kolla/passwords.yml | grep admin

Leave a Reply

Your email address will not be published. Required fields are marked *