We are using MariaDB database for ironic so we need to install
the optional PyMySQL dependency for sqlalchemy on all distributions
otherwise ironic-dbsync fails with the following error:
CRITI [ironic] ImportError: No module named pymysql
Traceback (most recent call last):
File "/usr/bin/ironic-dbsync", line 10, in <module>
sys.exit(main())
File "/usr/lib/python2.7/site-packages/ironic/cmd/dbsync.py", line 103, in main
CONF.command.func()
File "/usr/lib/python2.7/site-packages/ironic/cmd/dbsync.py", line 35, in upgrade
migration.upgrade(CONF.command.revision)
File "/usr/lib/python2.7/site-packages/ironic/db/migration.py", line 36, in upgrade
return get_backend().upgrade(version)
File "/usr/lib/python2.7/site-packages/ironic/db/sqlalchemy/migration.py", line 56, in upgrade
alembic.command.upgrade(config, revision or 'head')
[...]
File "/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/pymysql.py", line 49, in dbapi
return __import__('pymysql')
ImportError: No module named pymysql
Change-Id: Ib44779de06a7bad91a08e148e1c0e1eb9815afe8
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 environment variable. All other dependencies will still continue to cloned under
/opt/stack.