OpenStack desde cero - Horizon

Publicado el 15 junio 2015 por Dbigcloud @dbigcloud

Esta semana en OpenStack desde Cero, vamos a ver el Dashboard de OpenSatck conocido como Horizon, así de esta forma podemos completar el entorno que venimos montando. Horizon es una interfaz web que permite a los usuarios administrar los servicios que ofrece OpenStack incluyendo Nova, Swift, Keystone.

Al igual que cualquier componente de OpenStack dispone de su propia API, la cual puede ser accecida de forma sencilla, una utilidad que se le puede dar al uso de las API de OpenStack, es la integración con tu propia CMDB, cuando usuarios desplieguen instancias, volumenes, etc. estos datos pueden ser capturados para la integración con la base de datos.

Requisitos para instalar Horizon

Los requisitos para instalar Horizon son:

- Horizon esta basado en django, por lo que necesitamos tener Python 2.6 o 2.7 instalados.

- Disponer de los siguientes componentes de OpenStack instalado y configurados.

  • Nova
  • Glance
  • Keystone
  • Neutron

- La sesiones de cache pueden ser almacenadas tanto en base de datos o con Memcache, yo lo haré con este último ya que el acceso es bastante más rapido.

Cómo instalar Horizon

La instalación de Horizon debemos hacerla en el nodo controlador, para realizarla, debemos tener configurado el repositorio de Ubuntu Cloud.

apt-get install openstack-dashboard apache2 libapache2-mod-wsgi memcached python-memcache

También podemos hacerla a través del repositorio de Github: 

git clone https://github.com/openstack/horizon.git

Una vez instalado, necesitamos establecer unos parametros iniciarles para poder usar Horizon, para ello vamos a editar  el fichero /etc/openstack-dashboard/local_settings.py y vamos a configurar la IP del nodo controlador:

OPENSTACK_HOST = "controller"

Vamos a permitir que los demás hosts puedan acceder a Horizon

ALLOWED_HOSTS = ['*']

Un apartado bastante importante es configurar la cache de sesión

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

Y por ultimo el timezone, voy a indicar España

TIME_ZONE = "ES"

Para terminar con la configuración necesitamos reiniciar los servicios de Apache y Memcache, para validar los cambios

service apache2 restart
service memcached restart

De esta forma ya tenemos nuestro Dashboard instalado el cual podemos acceder desde la siguiente URL

http://controller/horizon

Cómo personalizar Horizon

Si eres de los que te gusta customizar los entornos web o bien necesitas hacerlo porque algún cliente te lo solicita, podeís personalizar cualquier aspecto del dashboard, para ellos tenéis que saber que los directorios en los que se encuentran las hojas de estilo y las imágenes son:

/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/
/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/css/

Os recomiendo que no realices cambios sobre los ficheros originales sino que copies el que necesites cambiary hagas referencia a él en el siguiente fichero:

/usr/share/openstack-dashboard/openstack_dashboard/templates/_stylesheets.html

Por ejemplo si queremos cambiar el logo, debemos subir uno nuevo a la carpeta img y en el fichero _styles.scss establecer el nuevo.

#splash .login {
  background-image: url(/static/themes/THEME/logo-splash.png);
}

.topbar {
  h1.brand a {
    background-image: url(/static/themes/THEME/logo.png);
  }
}

A demás en el fichero /etc/openstack-dashboard/local_settings.py comentado anteriromente, podemos establecer valores como URL, Oragnización...

Como habéis podido observar, este es el componente de OpenStack más sencillo de instalar y configurar, espero que os haya sido de utilidad y ya podáis administrar OpenStack desde el dashboard.

Servicios de OpenStack

  • KeyStone
  • Glance
  • Neutron (Nodo controlador)
  • Neutron (Nodo computo)