Introducción a la instalación de OpenStack

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

Theme by: reveal.js

Escenario de instalación

  • Vamos a usar vagrant para crear una máquina virtual con sistema operativo Debian Jessie, con las siguientes características:
    • Dos tarjetas de red: una interna y una externa (bridge)
    • 3 Gib de RAM
    • Un disco secundario
  • https://github.com/iesgn/openstack-debian-ansible

Preliminares

  • Actualizamos los respositorios de paquetes
  • Instalamos ntp
  • 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

Keystone

  • Instalamos los paquetes: keystone, python-keystone, python-keystoneclient
  • Borramos la base de datos sqlite, el catálogo lo vamos a guardar en mysql
  • Copiamos el fichero de configuración
  • Generamos las tablas en la base de datos (db_sync)
  • Creamos los datos de keystone (usuarios, roles, tenants, servicios, endpoints, ...).

Glance

  • Instalamos los paquetes: glance, glance-api, glance-registry, python-glanceclient
  • Borramos la base de datos sqlite
  • Configuramos el servicio
  • Generamos las tablas en la base de datos (db_sync)
  • Subimos una imagen CirrOs

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
  • 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

Neutron

  • Instalamos los paquetes: neutron-server, neutron-plugin-ml2
  • Configuramos el servicio
  • Generamos las tablas en la base de datos (db_sync)

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-lbaas-agent, neutron-l3-agent, neutron-dhcp-agent
  • Configuramos el servicio y los plugins
    • l3
    • dhcp
    • lbaas
    • 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 script de inicio para openvswitch
  • Generamos las tablas en la base de datos (db_sync)

Horizon

  • Instalamos los paquetes: memcached, apache2, libapache2-mod-wsgi, openstack-dashboard
  • Configuramos el servicio
  • Activamos el soporte https

Cinder

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

Cinder (Nodo de Almacenamiento)

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

Para terminar...

  • 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