Development Environment

31 July 2015: Most (if not all) of the information on this page is deprecated. It is being archived for reference.

For our development environment, we use vagrant to create the base virtual machines with libvirt, then use a modified version of the puppetlabs-openstack git repo to deploy Openstack on top of the virtual machines.

To launch a new virtualized Openstack environment

Install prerequisites

# vagrant - go to https://www.vagrantup.com/downloads and choose the correct package for you platform
# apt-get install kvm libvirt-bin git
# adduser $USER libvirtd

Obtain the MOC puppetlabs-openstack code

# Git pull https://github.com/CCI-MOC/puppetlabs-openstack.git

Navigate to the subdirectory puppetlabs-openstack/examples/libvirt

Run install_requirements.sh

Run firstrun.sh

The authentication credentials are on the control node, in /root/openrc

To rebuild

Run 50_destroy_nodes.sh

Run firstrun.sh

To add an additional service to be automatically installed using puppet

Add a new entry to the Puppetfile at the top level of the puppetlabs-openstack directory

Add the correct pointer to the puppet module you added to the role for the machine you want in in, specified under puppetlabs-openstack/manifests/roles

Versions we are using for tools and plugins

  • Vagrant 1.6.3
  • Vagrant-hostmanager 1.5.0
  • Vagrant-libvirt 0.0.16
  • Puppet 3.6.2

Current shortcomings

Only one development environment can exist on a machine.

The private IP addresses are hard-coded into the vagrant file, so duplicate vm’s networks would conflict.

Issues I encountered

Vagrant-libvirt does not install the most recent version by default, and needs to be specified in the install.

This is in install-requirements.txt.

If it is not the most recent version, removing domains will not work correctly, and you will have to manually remove virtual machines.