adc20dc59d
bindep does not understand rpm capabilities yet so the package names in bindep.txt must match the exact package names. As such, we make them a bit more explicit to avoid problems like this: 2017-06-23 08:33:01.971410 | ++ /usr/bindep-env/bin/bindep -b -f bindep.txt test 2017-06-23 08:33:02.417209 | + sudo PATH=/usr/sbin:/sbin:/home/jenkins/bin:/usr/local/bin:/usr/bin:/bin:/usr/games zypper --non-interactive install libffi-devel mariadb-server 2017-06-23 08:33:02.520362 | Loading repository data... 2017-06-23 08:33:02.646234 | Reading installed packages... 2017-06-23 08:33:02.942119 | 'libffi-devel' not found in package names. Trying capabilities. 2017-06-23 08:33:02.942198 | 'libffi-devel-gcc5' providing 'libffi-devel' is already installed. 2017-06-23 08:33:02.942221 | 'mariadb-server' not found in package names. Trying capabilities. 2017-06-23 08:33:02.942241 | 'mariadb' providing 'mariadb-server' is already installed. 2017-06-23 08:33:02.942256 | Resolving package dependencies... [...] 2017-06-23 08:33:03.027481 | + /usr/bindep-env/bin/bindep -b -f bindep.txt test 2017-06-23 08:33:03.482616 | libffi-devel 2017-06-23 08:33:03.482673 | mariadb-server 2017-06-23 08:33:03.504533 | + '[' 3 -gt 2 ']' 2017-06-23 08:33:03.504580 | + set +x 2017-06-23 08:33:03.985539 | 2017-06-23 08:33:03.985622 | ERROR: These requested packages were not installed: 2017-06-23 08:33:03.985633 | 2017-06-23 08:33:03.985644 | libffi-devel 2017-06-23 08:33:03.985655 | mariadb-server libffi-devel and mariadb-server are capabilities in openSUSE Leap 42.2 but bindep does not realize that the respective packages are already installed. Furthermore, when running in OpenStack CI, the scripts/test-bifrost.sh script performs a DB setup. However, that fails since the mariadb packages are not installed in time resulting to the following failures: 2017-06-23 08:14:50.227095 | + sudo service mysql start 2017-06-23 08:14:50.247996 | Redirecting to /bin/systemctl start mysql.service 2017-06-23 08:14:50.258852 | Failed to start mysql.service: Unit not found. 2017-06-23 08:14:50.260464 | + sudo service mysqld start 2017-06-23 08:14:50.276637 | Redirecting to /bin/systemctl start mysqld.service 2017-06-23 08:14:50.281428 | Failed to start mysqld.service: Unit not found. 2017-06-23 08:14:50.282917 | + sudo service mariadb start 2017-06-23 08:14:50.298320 | Redirecting to /bin/systemctl start mariadb.service 2017-06-23 08:14:50.301860 | Failed to start mariadb.service: Unit not found. 2017-06-23 08:14:50.303234 | [Zuul] Task exit code: 5 Change-Id: I6e171cf057ccd68bfdcd672df61fa3e55094db19 |
||
---|---|---|
bifrost | ||
doc/source | ||
playbooks | ||
releasenotes | ||
scripts | ||
tools | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.testr.conf | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
MISSION.rst | ||
README.rst | ||
README.vagrant.rst | ||
babel.cfg | ||
bindep.txt | ||
env-vars | ||
requirements.txt | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
tox.ini | ||
troubleshooting.rst |
README.vagrant.rst
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.network
public_network
value to a valid network interface to allow Bare Metal connectivity - Change
public_key
to correct key name - Change
network_interface
to 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 environment variable. All other dependencies will still continue to cloned under
/opt/stack
.