As of September 22nd, 2012, some packages from sid are still required on each node running volumes.{{{wget http://ftp.us.debian.org/debian/pool/main/i/iscsitarget/iscsitarget-dkms_1.4.20.2-10.1_all.debdpkg -i iscsitarget-dkms_1.4.20.2-10.1_all.deb

HOWTO: Install OpenStack on Debian GNU/Linux testing (wheezy)

Nova

This howto aims to provide guidelines to install & set up a multi-node Openstack-Compute (aka Nova) environment.

there must be enough space in /tmp to accomodate for a copy of the largest primary disk for an instance snapshot ( see the patch that fixes this in Folsom ). Alternatively, it is possible to set the temporary directory using the TMP variable. This should be done after nova-compute is installed:

echo export TMP=/var/lib/nova/tmp >> /etc/default/nova-common

there must be enough space in /var/lib/glance to store all glance images

there must be enough space in /var/lib/nova to store all instance disk images ( not volumes )

Test the puppet agents

⚠ Warning ⚠:

With sqlite3 as database backend, only one puppet agent can run at once.

Make sure hostname(1) and /etc/hostname agree with each other because it is the name under which it will be known to the puppet master. Send a request to the puppet master, asking it to accept a certificate for the machine with:

puppet agent -vt --waitforcert 60

And while the puppet agent is waiting, on the master/controller run:

puppetca sign -a

There should be no error and you should see a message saying "Hey ! It works !"

On the puppet master, install the openstack modules and the adapt the sample manifest

The actual private IPs of the controller and compute hosts (see at the beginning of this HOWTO):

$db_host = '192.168.66.100' # IP address of the host on which the database will be installed (the controller for instance)
$db_allowed_hosts = ['192.168.66.%'] # IP addresses for all compute hosts : they need access to the database

The FQDN of the host providing the API server which must be the same as the <controller.hostname> used above.

# The public fqdn of the controller host
$public_server = '<controller.hostname>'
# The internal fqdn of the controller host
$api_server = '<controller.hostname>'

If the interface used for the private network is not eth1, replace eth1 with the actual interface on which the IPs 192.168.66.0/24 are found (for instance br0).