It appears that test nodes, once are explicitly powered off, depending on libvirt, may completely vanish. As we only test at the end of the process if we've observed additional DHCP leases, we should move to only defining the VMs such that they are powered on when the sequence is ready, not in advance of the test sequence. Moving to defining instead of creating does improve the overall efficency of the sequence as no processes are spawning suddenly using CPU and RAM during the start of the test. This also allows us to remove and correct ansible virt module invocations. The ansible virt module is an extra module, not a core module, at least on Ubuntu Trusty, cannot have it's requirements installed via pip. Change-Id: I8948ba5a941384fdcacebcdfe9b6fd4fe8384cb1 Depends-On: I01885c397ed1e020aae306db1656678b26306532
Vagrant support for developers
Bifrost vagrant file for developers can be found in the
tools/vagrant_dev_env directory. Running
vagrant up from within this folder will bring up an Ubuntu
Trusty box with Bifrost installed.
By default, the VM will have three interfaces:
- eth0 - connected to a NAT network
- eth1 - connected to Host-only network named: vboxnet1
- eth2 - bridged - adapter must be set in Vagrantfile
Walkthrough done on OS X
Setup vagrant by:
- Installing git
- Installing virtualbox
- Installing vagrant
- Installing ansible
Configure Vagrant with the correct box:
vagrant box add ubuntu/trusty64
Clone bifrost repo:
git clone https://github.com/openstack/bifrost.git
Change into the bifrost directory:
cd bifrost/tools/vagrant_dev_env
Edit the Vagrantfile:
- Change the
bifrost.vm.networkpublic_networkvalue to a valid network interface to allow Bare Metal connectivity - Change
public_keyto correct key name - Change
network_interfaceto match your needs
Boot the VM with:
vagrant up
Installation Options
Ansible is installed within the VM directly from source or from the
path set by ANSIBLE_GIT_URL. You can modify the path of
installation by setting ANSIBLE_INSTALL_ROOT environment
variable. The default value is /opt/stack. When set in the
host, this variable will also be set as an environment variable inside
the VM for use by test scripts.
Note:
Only the ansible installation path is configurable at this point using the enviroment variable. All other dependencies will still continue to cloned under
/opt/stack.