A 12 minute screencast showing an installation of OpenStack ‘Essex’ on Ubuntu 12.04 running on VirtualBox
OpenStack Essex Installation Screencast
Note that this screencast has no sound.
Configure VirtualBox with the following Network Interfaces:
eth1 host-only: 172.16.0.0/16
eth2 host-only: 10.0.0.0/8 Memory: 1536Mb Hard Disk: 20Gb System Processor (optional but recommended): Increase CPU from 1
Install Ubuntu 12.04, specifying eth0 as your default interface
Configure networking: eth1 is your public network set to be 172.16.0.0/16 eth2 is your private VLAN
Run an update on the machine, and reboot
Install Git which allows you to pull down a script to perform the installation of OpenStack
Running OpenStack under VirtualBox allows you to have a complete multi-node cluster that you can access and manage from the computer running VirtualBox as if you’re accessing a region on Amazon.
This is a complete guide to setting up a VirtualBox VM running Ubuntu, with OpenStack running on this guest and an OpenStack instance running, accessible from your host.
Part 1 – OpenStack on a single VirtualBox VM with OpenStack instances accessible from host
The environment used for this guide
A 64-Bit Intel Core i7 Laptop, 8Gb Ram.
Ubuntu 10.10 Maverick AMD64 (The “host”)
Access from host running VirtualBox only (so useful for development/proof of concept)
The proposed environment
OpenStack “Public” Network: 220.127.116.11/25
OpenStack “Private” Network: 10.0.0.0/8
Host has access to its own LAN, separate to this on 192.168.0.0/16 and not used for this guide
Add/Edit Host-only network so you have vboxnet0. This will serve as the “Public interface” to your cloud environment
Configure this as follows
IPv4 Address: 18.104.22.168
IPv4 Network Mask: 255.255.255.128
On your Linux host running VirtualBox, you will see an interface created called ‘vboxnet0′ with the address specified as 22.214.171.124. This will be the IP address your OpenStack instances will see when you access them.
Create a new Guest
OS Type: Linux
Version: Ubuntu (64-Bit)
Boot Hard Disk
Dynamically Expanding Storage
After this initial set up, continue to configure the guest
Edit the CD-ROM so that it boots Ubuntu 10.10 Live or Server ISO
Ensure that the SATA controller has Host I/O Cache Enabled (recommended by VirtualBox for EXT4 filesystems)
This will provide the default route to allow the VM to access the internet to get the updates, OpenStack scripts and software
Disable (just not required)
Power the guest on and install Ubuntu
For this guide I’ve statically assigned the guest with the IP: 126.96.36.199 for eth0 and netmask 255.255.255.128. This will be the IP address that you will use to access the guest from your host box, as well as the IP address you can use to SSH/SCP files around.
Once installed, run an update (sudo apt-get update&&sudo apt-get upgrade) then reboot
If you’re running a desktop, install the Guest Additions (Device… Install Guest Additions, then click on Places and select the VBoxGuestAdditions CD and follow the Autorun script), then Reboot
sudo apt-get -y install openssh-server
Grab this script to install OpenStack
This will set up a repository (ppa:nova/trunk) and install MySQL server where the information regarding your cloud will be stored
The options specified on the command line match the environment described above
Congratulations, you now have a working Cloud environment waiting for its first image and instances to run, with a user you specified on the command line (yourusername), the credentials to access the cloud and a project called ‘myproject’ to host the instances.
You now need to ensure that you can access any instances that you launch via SSH as a minimum (as well as being able to ping) – but I add in access to a web service and port 8080 too for this environment as my “default” security group.
Once the uec-publish-tarball command has been run, it will present you with a line with emi=, eri= and eki= specifying the Image, Ramdisk and Kernel as shown below. Highlight this, copy and paste back in your shell
You will see the Private IP that has been assigned to this instance, for example 10.0.0.3
To access this via SSH
ssh -i cloud/creds/openstack.pem email@example.com
(To log out of ttylinux, type: logout)
Congratulations, you now have an OpenStack instance running under OpenStack Nova, running under a VirtualBox VM!
To access this outside of the VirtualBox environment (i.e. back on your real computer, the host) you need to assign it a “public” IP
Associate this to the instance id (get from euca-describe-instances and will be of the format i-00000000)
This will return an IP address that has been assigned to your project so that you can now associate to your instance, e.g. 188.8.131.52
euca-associate-address -i i-00000001 184.108.40.206
Now back on your host (so outside of VirtualBox), grab a copy of cloud/creds directory
scp -r firstname.lastname@example.org:cloud/creds .
You can now access that host using the Public address you associated to it above
ssh -i cloud/creds/openstack.pem email@example.com
CONGRATULATIONS! You have now created a complete cloud environment under VirtualBox that you can manage from your computer (host) as if you’re managing services on Amazon. To demonstrate this you can terminate that instance you created from your computer (host)