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