Getting started

Made to be as simple as possible, but not too simple...



Read the great documentation for developers/admins at

This will vastly help you understand what the configurations and options do when ANVIL configures them.


One of the tested distributions.

  • RHEL 6.2+
  • CentOS 6.2+
  • Oracle Enteprise Linux 6.2+

You can get CentOS 6.2+ (64-bit is preferred) from



Since RHEL requires a tty to perform sudo commands we need to disable this so sudo can run without a tty. This seems needed since nova and other components attempt to do sudo commands. This isn’t possible in RHEL unless you disable this (since those instances won’t have a tty).

$ sudo visudo

Then comment out line

Default requiretty

Also disable selinux:

$ sudo vi /etc/sysconfig/selinux

Change SELINUX=enforcing to SELINUX=disabled then reboot.

$ sudo reboot

Create specifc user to isolate all the Anvil processes from root user

$ sudo useradd <username>
$ sudo passwd <username>

Set user as sudoer

$ sudo visudo

Add <username> ALL=(ALL) ALL

Make all the rest of actions as <username> user

$ sudo su - <username>

Get git!

$ sudo yum install git -y


We’ll grab the latest version of ANVIL via git:

$ git clone
$ cd anvil


Any configuration to be updated should now be done.

Please edit the corresponding yaml files in conf/components/ or conf/components/personas to fit your desired configuration of nova/glance and the other OpenStack components.


You can use -p <conf/components/required_file.yaml> to specify a different persona.

To specify which versions of OpenStack components you want to install select or edit an origins configuration file from <conf/origins/>.


You can use -o <conf/origins/origins_file.yaml> to specify this different origins file.

Respository notes for those with RedHat subscriptions

To enable the needed repositories for various requirements please also run:

sudo subscription-manager repos --enable rhel-6-server-optional-rpms

You can also include the RDO repositories (which has even more of the needed requirements). This will ensure that anvil has to build less dependencies overall.


In order to ensure that anvil will have its correct dependencies you need to first run the bootstrapping code that will setup said dependencies for your operating system.

sudo ./smithy --bootstrap


Now prepare OpenStacks components by running the following:

./smithy -a prepare

You should see a corresponding OpenStack repositories getting downloaded using git, python setups occurring and configuration files being written as well as source rpm packages being built and a repository setup from those components [1].


Now build OpenStacks components by running the following:

sudo ./smithy -a build

You should see a corresponding OpenStack components and dependencies at this stage being packaged into rpm files and two repositories being setup for you [1]. One repository will be the dependencies that the OpenStack components need to run and th other will be the OpenStack components themselves.


Please report issues/bugs to Much appreciated!

[1](1, 2) If you desire more informational output add a -v or a -vv to the command.