Sunday 14 April 2013

OpenStack Grizzly with Quantum multi-node auto-install script


This Ansible script installs OpenStack Grizzly onto three Vagrant/VirtualBox nodes using the OpenStack packages from the Ubuntu cloud archive. The install steps are in the readme.





Notes

Ansible uses pure ssh and is not in any way tied to Vagrant/VirtualBox. So to get this script working with physical machines shouldn't be too hard. They will need to be Ubuntu 12.04 (precise) and be networked like the diagram - but ip addresses and nic references are limited to just a few files that can be easily changed. Also more compute nodes can be added to the ansible_hosts file. To use KVM instead of QEMU would just mean changing the nova-compute.yaml playbook.

Issues

Many OpenStack services don't start properly after rebooting the nodes. They start several seconds before rabbitmq and their retry logic doesn't seem to be working - investigatingFixed.
Workaround: after reboots, restart the services manually:
On controller: $ cd /etc/init.d; for i in $(ls nova-* ; ls quantum-* cinder-*); do sudo service $i restart; done;
On netnode: $ cd /etc/init.d; for i in $(ls quantum-*); do sudo service $i restart; done;

The ip namespaces on the netnode do not get cleaned up after use. The line continuation character ('\') in the cron jobs is the cause. Fixed.

There may be a problem if security groups are created before any networks exists. The quantum command does not list the default group if no other group exists.

Tips

The Ubuntu mirror (us.archive.ubuntu.com) baked into the Vagrant precise64 box was very slow (30 KB/sec), so vms/Vagrantfile has a sed line to change it. Ubuntu desktop has a GUI package manager program that will "find the best server" for your location. It takes about 15min with 30Mbps broadband and about 1 hour with a 1Mbps link (times not including the once-off precise64 download).

You will need a machine with ~3GB of free RAM. But if memory is tight you can trim this down to maybe 2.2 by reducing compute1 to 500MB in vms/Vagrantfile - the cirros image only requires ~80MB per instance running in a 50MB flavor.

Dashboard problems? try clearing the cookie.

TODO: Get quantum metadata proxy working. Done.