Este articulo explica como instalar Ryu con OpenStack en la modalidad de DevStack utilizando OFAgent está basado en OFAgent -IceHouse
En este tutorial usaremos Ubuntu 12.04 LTS y vamos a instalar OpenStack IceHouse bajo KVM.
Arquitectura
+--------+
| Client |
+----+---+
|
-----+---------+-------------------+-----------
| |
+--------+--------+ +-------+--------+
| All-in-one Node | | Compute Node |
| Nova | | Neutron |
| Keystone | | ofagent |
| Glance | | Nova |
| Neutron | | nova-compute |
| Cinder | +----------------+
| Horizon |
+-----------------+
Iniciando
Primeramente vamos a instalar Ubuntu Server en ambos nodos Como sugerencia recomiendo instalar una máquina con Ubuntu e instalar los siguientes paquetes
$ sudo apt-get install git python-dev python-pip
$ sudo pip install -U six
Instalando devstack tuve algunos problemas de dependencias, las cuales tuve que instalar manualmente, acá están las librerías instaladas
$ sudo pip install -U setuptools
$ sudo pip install unicodecsv testrepository bandit futurist urllib3 debtcollector taskflow os-client-config reno keystoneauth1 python-neutronclient
y descargar devStack en la máquina con el fin de poder clonarla y no tener que hacer el mismo procedimiento 2 veces.
$ git clone https://github.com/openstack-dev/devstack.git -b stable/kilo
Para cada host se definen las siguientes direcciones de red
Red provista por KVM
Network: 192.168.122.0/24
Máquinas instaladas
All-in-one Node:
Host name: allinone
IP address: 192.168.122.60
Compute Node:
Host name: compute1
IP address: 192.168.122.61
La máquina cliente (en mi caso la máquina donde está instalado KVM)
Cliente:
Host name: client
IP address: 192.168.122.1
Configurando la red
En ambas máquinas hay que modificar el archivo /etc/network/interfaces
All-in-one
auto lo
auto eth0
iface eth0 inet static
address 192.168.122.60
netmask 255.255.255.0
gateway 192.168.122.1
dns-nameservers 192.168.122.1
Compute Node
auto lo
auto eth0
iface eth0 inet static
address 192.168.122.61
netmask 255.255.255.0
gateway 192.168.122.1
dns-nameservers 192.168.122.1
Cliente
Como estamos usando nuestra máquina física como anfitriona vamos a hacer especificarle una forma de acceder a la ip flotante dentro de las máquina virtual
$ sudo route add -net 192.168.100.0/24 gw 192.168.122.60
Configurando compute node
Como estamos utilizando un repositorio diseñado específicamente para instalar OFAgent ya tenemos la mayoría de las configuraciones hechas, solo tenemos que modificar las que varían de All-in-one para esto vamos a la máquina que vamos usar como compute.
$ nano ~/devstack/localrc
Descomentamos lo que indica compute node y comentamos lo que es para All-in-one node
SERVICE_HOST=192.168.122.60
# all-in-one node
#disable_service n-net
#enable_service q-svc q-agt q-dhcp q-l3 q-meta q-lbaas neutron
# compute node
disable_all_services
enable_service n-cpu q-agt neutron
Corriendo devstack
Hay que ejecutar en All-in-one node
$ cd ~/devstack/
$ ./stack.sh
Luego se hace lo mismo en Compute node
$ cd ~/devstack/
$ ./stack.sh