Foreman on Openstack
Puppet Ruby Shell
Pull request Compare This branch is 980 commits behind redhat-openstack:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Configurations to set up foreman quickly, install openstack puppet modules and rapidly provision openstack compute & controller nodes with puppet.

This install is based on the redhat packstack quickstart rpm that can be found here: with a few modifications

  • ntp module added
  • nova module "default_target" function added


RHEL 6.4

  • This should work on other operating systems, but has only been tested on RHEL6.4

Network layout

  • Each machine has a public and a private network interface (i.e eth0 & eth1)
  • Network gateway is at $(NETWORK).1

At least 3 machines

  • 1 Foreman Host (private address $(NETWORK).2 )
  • 1 OpenStack Controller Node (private address $(NETWORK.3 )
  • 1+ OpenStack Compute Nodes

Ipaddress defaults can be changed in the class parameters

Preconfiguration - these machines should be:

  • Running RHEL 6.4
  • Correctly subscribed & updated
  • Have a FQDN resolvable by others on the network
  • Network setup between 3 node types described above


  1. Run This will install foreman, setup your smart proxy, default host groups, some global variables, and install the OpenStack puppet classes
  2. When the installer is done, login to foreman https://FQDN/. Default login is admin/changeme
  3. You need to configure some parameters for your environment.
  • Edit anything with EDIT ME to something sensible for your environment
  1. Now you need to register hosts. generated /tmp/ scp that to your compute & controller nodes. Run it on each. It will install puppet and register it with your foreman server
  2. In the foreman UI, select HOSTS. Choose the host that you want to be the controller node
  3. Select EDIT HOST. Change HOSTGROUPS to OpenStack Controller Node.
  4. Run puppet agent on the node (puppet agent -tv)
  5. Repeat this process for each compute node, but set the HOSTGROUP to OpenStack Compute Node
  6. Voila!