En este artículo explicamos de forma sencilla cómo instalar y configurar el panel web Horizon en el nodo controlador (controller01).

Instalar los paquetes necesarios

vagrant@controller01:~$ sudo apt update
vagrant@controller01:~$ sudo apt install -y openstack-dashboard

Editar la configuración principal de Horizon

Edite el archivo /etc/openstack-dashboard/local_settings.py y asegúrese de que contiene las siguientes líneas modificadas o añadidas. Si prefiere editar con vim o nano, use sudo.

vagrant@controller01:~$ sudo nano /etc/openstack-dashboard/local_settings.py

Modifica las siguientes entradas en local_settings.py:

OPENSTACK_HOST = "controller01"

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {
    'default': {
         'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache',
         'LOCATION': 'controller01:11211',
    }
}

OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST

OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True

OPENSTACK_API_VERSIONS = {
    "identity": 3,
    "image": 2,
    "volume": 3,
}

OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"

Nota: cambie volume: 2 por volume: 3 porque usamos endpoints v3 para Cinder. Si prefiere usar v2, modifique OPENSTACK_API_VERSIONS['volume'] a 2.

Ajustar la configuración de Apache

Edite /etc/apache2/conf-available/openstack-dashboard.conf y añada la línea WSGIApplicationGroup %{GLOBAL} (al final del archivo) para evitar problemas con módulos Python.

WSGIScriptAlias /horizon /usr/share/openstack-dashboard/openstack_dashboard/wsgi.py process-group=horizon
WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 display-name=%{GROUP}
WSGIProcessGroup horizon
WSGIApplicationGroup %{GLOBAL}
Alias /static /var/lib/openstack-dashboard/static/
Alias /horizon/static /var/lib/openstack-dashboard/static/
<Directory /usr/share/openstack-dashboard/openstack_dashboard>
  Require all granted
</Directory>
<Directory /var/lib/openstack-dashboard/static>
  Require all granted
</Directory>

Este ajuste evita errores con ciertos módulos Python usados por Horizon.

Recargar la configuración del servidor web

vagrant@controller01:~$ sudo service apache2 reload

Puede que necesites ejecutar esto:

vagrant@controller01:/usr/share/openstack-dashboard$ sudo python3 manage.py compress

Acceder a Horizon

Abra un navegador y visite:

http://controller01/horizon o http://IP_NODO_CONTROLADOR/horizon

Inicia sesión con un usuario creado en Keystone (por ejemplo, admin o un usuario de proyecto). Recuerda que el dominio por defecto es Default.

Una vez dentro, verás el uso de los recursos de computación asignados a tu usuario:

También puedes ver las instancias desplegadas e interactuar con ellas abriendo una consola: