Inside My Home Rackspace Private Cloud, OpenStack Lab, Part 5: Adding Extra Compute Nodes

Adding Extra Compute Nodes to Rackspace Private Cloud

The first four of these posts covered setup and installation of my home lab, including the networking, PXE booting Ubuntu and installation of Rackspace Private Cloud. I ended up with two Controllers in HA and three Computes.

In this post I show how easy it is to add two extra Compute nodes to the lab.

The extra nodes are HP N54L MicroServers. They’re 2.2GHz AMD Turion II machines that come with 250Gb HDD and 2Gb RAM. I add an Integral 4Gb DIMM to each as well as an extra TP-Link NIC:

The first thing to do is prep my network services so I can PXE Boot. This includes adding the new services to DNS and DHCP (static IP assignment from MAC). As I use my QNAP TS-210 ( as my DNS and DHCP service (courtesy of Dnsmasq) I add the following to /etc/hosts on there: openstack6 openstack7

I then open up /opt/etc/dnsmasq.conf and add in the static MAC assignment:


After reloading the dnsmasq service (/opt/etc/init.d/S56dnsmasq restart) I’m ready to PXE boot the servers. See this post for details of my PXE Boot setup using the QNAP NAS boxes.

Now that they have Ubuntu installed on the two new servers, openstack6 ( and openstack7 (, as well as having root‘s SSH key setup, I first check that the networking is setup correctly on the new servers. The /etc/network/interfaces should have the following contents:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback

# Host/Management
auto eth0
iface eth0 inet dhcp

# Neutron Provider interface
auto eth1
iface eth1 inet manual
  up ip link set $IFACE up
  down ip link set $IFACE down

Bootstrap, assign role, chef-client, done!

With that in place, I can now bootstrap them with the Chef Client and assign the relevant roles which puts them as part of my OpenStack Compute lab. To do this I log onto my Chef server (running on openstack1) as root and issue the following:

knife bootstrap -E RPCS -r role[single-compute]
knife bootstrap -E RPCS -r role[single-compute]
knife ssh "role:single-compute" chef-client

And it is that easy!

The last command executes chef-client on all my computes. This isn’t strictly necessary to add these new nodes, but it’s good practice to run it to ensure that my computes are consistent.

I can view that my hypervisors (the compute nodes) are correctly available by issuing the following:

. openrc
nova hypervisor-list

This will produce the following output for my lab:

root@openstack1:~# nova hypervisor-list
| ID | Hypervisor hostname            |
| 1  | |
| 3  | |
| 5  | |
| 7  | |
| 8  | |


Please enter your comment!
Please enter your name here