Introducción a la instalación de OpenStack

Alberto Molina Coballes y José Domingo Muñoz Rodríguez

Theme by: reveal.js

Preliminares (1)

  • Instalamos el paquete (software-properties-common): comando add-apt-repository
  • Instalamos paquete ubuntu-cloud-keyring
  • Añadimos repositorio OpenStack Kilo de ubuntu
  • Actualizamos los respositorios de paquetes
  • Instalamos ntp

Preliminares (2)

  • Instalamos mysql
  • Creamos un usuario y una base de datos por cada uno de los componentes de OpenStack que vamos a instalar (keystone, glance, nova, neutron, ...)
  • Instalamos rabbitmq
  • Instalamos el cliente de linea de comandos (OpenStack Client)

Keystone

  • Instalamos los paquetes: keystone, python-keystone, python-keystoneclient, python-oslo.db
  • Borramos la base de datos sqlite que se crea por defecto
  • Copiamos el fichero de configuración: keystone.conf
  • Generamos las tablas en la base de datos (db_sync)
  • Creamos los datos de keystone (usuarios, roles, tenants, servicios, endpoints, ...).
  • Se crean los ficheros de credenciales: admin_openrc_2.0.sh (API 2.0), admin_openrc.sh (API 3.0), demo_openrc.sh

Glance

  • Instalamos los paquetes: glance, glance-api, glance-registry, python-glanceclient, glance-common
  • Borramos la base de datos sqlite
  • Configuramos el servicio: glance-api.conf y glance-registry.conf
  • Generamos las tablas en la base de datos (db_sync)

Nova

  • Instalamos los paquetes: nova-api, nova-cert, nova-conductor, nova-consoleauth, nova-scheduler, python-novaclient, nova-consoleproxy
  • Borramos la base de datos sqlite
  • Configuramos el servicio: nova.conf y nova-consoleproxy
  • Generamos las tablas en la base de datos (db_sync)

Nova (en los nodos de computación)

  • Si el nodo de computación tiene soporte de virtualización hardware (nova-compute-kvm), si no (nova-compute-qemu)
  • Instalamos python-guestfs, para gestionar y montar las imágenes.
  • Borramos la base de datos sqlite
  • Configuramos el servicio: nova.conf

Neutron

  • Instalamos los paquetes: neutron-server, neutron-plugin-ml2, neutron-common, python-neutronclient
  • Configuramos el servicio: neutron.conf, ml2_conf.ini
  • Generamos las tablas en la base de datos (db_sync)
  • Borramos la base de datos sqlite

Neutron Agents y Plugins (Nodo de Red)

  • Configuración de sysctl (ip_forward, etc.)
  • Instalamos los paquetes:neutron-plugin-ml2, neutron-plugin-openvswitch-agent, neutron-metadata-agent, neutron-l3-agent, neutron-dhcp-agent
  • Configuramos el servicio y los plugins
    • l3
    • dhcp
    • metadata
    • ml2

Openvswitch (Nodo de Red)

  • Configuración de los bridge: br-ext, br-int
  • Conectamos la interfaz externa al br-ext
  • Configuramos los parámetros de red de br-ext
  • Modificamos el el fichero interface, para que la configuración se inicie de forma automática

Horizon

  • Instalamos los paquetes: memcached, apache2, libapache2-mod-wsgi, openstack-dashboard, python-django-horizon
  • Configuramos el servicio: local_settings.py
  • Activamos los módulos de apache2: wsgi, ssl, rewrite

Cinder

  • Instalamos los paquetes: cinder-api, cinder-scheduler, python-cinderclient
  • Borramos la base de datos sqlite
  • Configuramos el servicio: cinder.conf
  • Generamos las tablas en la base de datos (db_sync)

Cinder (Nodo de Almacenamiento)

  • Instalamos los paquetes: qemu, cinder-volume, lvm2
  • Configuramos lvm: creamos volúmenes fisicos y grupo de volúmenes
  • Configuramos el servicio: cinder.conf

Para terminar...

  • Creamos usuarios y proyectos de los alumnos
  • Subimos alguna imagen
  • Configurar la red: red pública, router y red interna de algún proyecto
  • Podemos crear algún sabor con características mínimas
  • Hacemos las pruebas