OpenStack

De FdIwiki SC
Saltar a: navegación, buscar

Fuente: [1]

OpenStack es un proyecto de computación en la nube para proporcionar una IaaS

Es un software libre y de código abierto distribuido bajo los términos de la licencia Apache. El proyecto está gestionado por la Fundación OpenStack, una persona jurídica sin fines de lucro creada en septiembre de 2012 para promover el software OpenStack y su comunidad.

Instalación rápida de DevStack, única máquina Debian 8. (sin persistencia)

Requisitos

  • Máquina para pruebas, con Debian 8 o Ubuntu 14
  • Conexión a internet

[2] Ante nada, este tutorial es para que probemos rápidamente OpenStack. Pero no es recomendable usarlo en un entorno de trabajo. (en realidad, necesitamos siete máquinas fisicas o virtuales, con 12GB de Ram entre todas). Además, el uso de 'sudo' es una auténtica chapuza de seguridad. así que es mejor hacer este tutorial dentro de una máquina virtual con Debian. ES MUY RECOMENDABLE HACERLO EN UNA MÁQUINA VIRTUAL Además, la configuración se pierde si apagamos el servicio.

Creación de Usuario

Creamos un usuario llamado stack , y le ponemos una contraseña (que no sea 'stack' ni '1234' xD )

sudo adduser stack

Lo añadimos a sudoers

echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

Logueo como 'stack'

Nos logueamos desde terminal como usuario stack

sudo login

Descarga del Stack

Clonamos 'DevStack' (el 'Xampp' de Openstack, vaya) y nos metemos en la carpeta

git clone https://git.openstack.org/openstack-dev/devstack
cd devstack

Configuración del Stack

DevStack incluye un ejemplo de fichero de configuración en devstack/samples.local.conf

  • FLOATING RANGE es un rango de nuestra red local, que no estamos usando. Supondré que no tenemos nada por encima de 192.168.1.224
  • FIXED_RANGE y FIXED_NETWORK_SIZE acotan las direcciones IP internan usadas por las instancias
  • FLAT_INTERFACE es la interfaz de nuestra máquina que nos connecta a la red local
  • ADMIN_PASSWD contiene la contraseña de admin de todo el tinglado
  • DATABASE_PASSWORD contiene la contraseña del bloque de BBDD de Openstack (en nuestro caso, si tenemos MYSql previamente instalado, es necesario que proporcionemos la contraseña de 'root' de MYSql que habíamos puesto en la instalación)
  • RABBIT_PASSWORD contiene la contraseña de RabbitMQ (mensajería)
  • SERVICE_PASSWORD contiene la contraseña común de los servicios de Openstack (Nova, Glance,etc)

Creamos el fichero de configuración

touch local.conf

Lo editamos

nano local.conf

y metemos algo parecido a esto

[[local|localrc]]
FLOATING_RANGE=192.168.1.224/27
FIXED_RANGE=10.11.12.0/24
FIXED_NETWORK_SIZE=256
FLAT_INTERFACE=eth0
ADMIN_PASSWORD=supersecret
DATABASE_PASSWORD=iheartdatabases
RABBIT_PASSWORD=flopsymopsy
SERVICE_PASSWORD=iheartksl


Arrancamos el Stack por primera vez, para que se instale.. La instalación tarda media hora, segun nuestra conexión a internet. nos saldrá un mensaje del estilo

2016-05-18 13:20:17.700 | stack.sh completed in 913 seconds

Una vez terminada, Paramos el Stack

Para evitar largos chequeos cada vez que arrancamos , añadimos una línea al fichero de configuración

echo OFFLINE=True >> local.conf

Arranque del Stack

Si no queremos que dependa de una terminal, podemos usar la utilidad 'screen '

Entramos en la carpeta devstack y arrancamos devstack

cd /$HOME/devstack
./stack.sh

Cuando haya arrancado, (tarda unos dos minutos), nos saldrá la página de administración que se encuentra en 127.0.0.1

DevStack1.png

DevStack2.png

Eso sí, si reiniciamos nuestro ordenador, hay que arrancar DevStack otra vez.

Parada del Stack

Para parar DevStack, hacemos

./unstack.sh

Cerramos la terminal donde se ejecuta DevStack

Actualización de DevStack

Para actualizar DevStack, lo debemos para primero. Habilitamos Reclone

sed -i "s/OFFLINE=True/RECLONE=yes/g" local.conf

Arrancamos DevStack. y esperamos a que se instale

Lo paramos.

Deshabilitamos reclone y habilitamos offline

sed -i "s/RECLONE=yes/OFFLINE=True/g" local.conf

Creación de Infraestructura

A partir de aquí, es todo cuestión de imaginación. Como caso de ejemplo, contaré cómo se monta un router y un equipo cliente, sobre OpenStack. Entro en la carpeta de devstack y me logueo como usuario 'stack' (ver apartado anterior)

Crear un router

Para más facilidad, instanciaré una imagen prefabricada [3][4] de Openwrt (aunque también nos podemos cocinar una de pfSense, p.e.)

Descarga de la imagen de router

Creo una carpeta temporal para descargas y entro dentro

mkdir temporales
cd temporales

Descargo la imagen (o la copio de otro sitio)

wget http://enlace-a-imagen/openwrt.img

Creo un fichero con los metadatos y datos de acceso a keystone [5]

nano config_openwrt

y le meto algo por el estilo

export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=supersecret
export OS_AUTH_URL=http://127.0.0.1:35357/v2.0/

Importación de imagen de router

Leo el fichero de metadatos previamente generado

source config_openwrt

E importamos la imagen

glance image-create --name='mi_primer_router' --visibility public --progress  --container-format=bare --disk-format=qcow2 < openwrt.img

Una vez terminada la importación, nos aparecerá como imagen disponible

OpenStack3.png

Importo la imagen recién descargada [6]

Lanzamiento de imagen de router

En la página de administración , pinchamos en 'Compute' -> 'Imágenes' Aparece nuestra imagen de openwrt, a la que le damos 'Lanzar'

OpenStack4.png

Vamos rellenando datos

OpenStack5.png

Aquí, escogemos m1.tiny como plantilla

OpenStack9.png

Y en 'Par de Claves', generamos un fichero .pem, para poder conectarnos por SSH a la instancia del router

OpenStack6.png

Le damos un nombre a la clave, y se nos ofrece descargar un fichero .pem, que usaremos más adelante

OpenStack5.png

Referencias

  1. | Wiki Openstack
  2. |Manual Oficial de Instalación de Openstack en una única máquina
  3. | Cómo compatibilizar Openwrt con Openstack
  4. | Imagen precocinada de Openwrt
  5. | metadatos para keystone
  6. | importar imagen en OpenStack