aboutsummaryrefslogtreecommitdiff
path: root/contrib/dev
diff options
context:
space:
mode:
authorJuan J. Martinez <jjm@usebox.net>2017-05-30 11:47:15 +0100
committerJuan Martinez <jmartinez@cray.com>2017-05-31 14:19:09 +0100
commit8fe43171ce44631988844e2d63b2474a4938c437 (patch)
treed06d1d453c66bfbe9488277563b6957606604485 /contrib/dev
parent1a21bf2a4d86d1e87d4505f7485e4cd7e487c569 (diff)
downloadkolla-ansible-8fe43171ce44631988844e2d63b2474a4938c437.tar.gz
kolla-ansible-8fe43171ce44631988844e2d63b2474a4938c437.zip
Fix vagrant development environment
After the repo split into kolla and kolla-ansible the Vagrant development environment was broken. With this change Vagrant will run from kolla-ansible and kolla repo is expected to be in the same directory level so the bootstrap can include it inside the VM. - Modified the bootstrap code to copy both repos into the VM. - Added one configuration token to specify kolla-ansible location inside the VM. - Updated the docs. Change-Id: I6b56822d50472f8eda6fc60f69196d3c9b8b6cf8 Closes-Bug: 1693847
Diffstat (limited to 'contrib/dev')
-rw-r--r--contrib/dev/vagrant/Vagrantfile28
-rw-r--r--contrib/dev/vagrant/Vagrantfile.custom.example9
-rw-r--r--contrib/dev/vagrant/bootstrap.sh7
3 files changed, 33 insertions, 11 deletions
diff --git a/contrib/dev/vagrant/Vagrantfile b/contrib/dev/vagrant/Vagrantfile
index a667aa086..3088e2126 100644
--- a/contrib/dev/vagrant/Vagrantfile
+++ b/contrib/dev/vagrant/Vagrantfile
@@ -15,6 +15,11 @@ end
vagrant_dir = File.expand_path(File.dirname(__FILE__))
+# get kolla and kolla-ansibe repos path relative to current directory
+# they will be used by the bootstrap script to configure the nodes
+kolla_ansible_repo_path = File.expand_path(File.join(vagrant_dir, '..', '..', '..'))
+kolla_repo_path = File.expand_path(File.join(vagrant_dir, '..', '..', '..', '..', 'kolla'))
+
# Vagrantfile.custom contains user customization for the Vagrantfile
# You shouldn't have to edit the Vagrantfile, ever.
if File.exists?(File.join(vagrant_dir, 'Vagrantfile.custom'))
@@ -42,7 +47,8 @@ PROVIDER_DEFAULTS ||= {
bridge_interface: "virbr0",
vagrant_shared_folder: "/home/vagrant/sync",
sync_method: "nfs",
- kolla_path: "/home/vagrant/kolla"
+ kolla_path: "/home/vagrant/kolla",
+ kolla_ansible_path: "/home/vagrant/kolla-ansible"
}
},
virtualbox: {
@@ -51,14 +57,16 @@ PROVIDER_DEFAULTS ||= {
bridge_interface: "wlp3s0b1",
vagrant_shared_folder: "/home/vagrant/sync",
sync_method: "virtualbox",
- kolla_path: "/home/vagrant/kolla"
+ kolla_path: "/home/vagrant/kolla",
+ kolla_ansible_path: "/home/vagrant/kolla-ansible"
},
ubuntu: {
base_image: "ubuntu/wily64",
bridge_interface: "wlp3s0b1",
vagrant_shared_folder: "/home/vagrant/sync",
sync_method: "virtualbox",
- kolla_path: "/home/vagrant/kolla"
+ kolla_path: "/home/vagrant/kolla",
+ kolla_ansible_path: "/home/vagrant/kolla-ansible"
}
}
}
@@ -159,6 +167,13 @@ def configure_wifi_if_enabled(vm)
end
Vagrant.configure(2) do |config|
+
+ # check for kolla repo to be available
+ unless File.directory?(kolla_repo_path)
+ raise VagrantConfigMissing,
+ "Missing kolla repository checkout at #{kolla_repo_path}"
+ end
+
config.vm.box = get_default(:base_image)
# Next to the hostonly NAT-network there is a host-only network with all
@@ -209,8 +224,9 @@ Vagrant.configure(2) do |config|
# The operator controls the deployment
config.vm.define "operator", primary: true do |admin|
admin.vm.hostname = "operator.local"
- admin.vm.provision :shell, path: PROVISION_SCRIPT, args: "operator #{MULTINODE ? 'multinode' : 'aio'} #{get_default(:kolla_path)}"
- admin.vm.synced_folder File.join(vagrant_dir, '..', '..', '..'), get_default(:kolla_path), create:"True", type: get_default(:sync_method)
+ admin.vm.provision :shell, path: PROVISION_SCRIPT, args: "operator #{MULTINODE ? 'multinode' : 'aio'} #{get_default(:kolla_path)} #{get_default(:kolla_ansible_path)}"
+ admin.vm.synced_folder kolla_ansible_repo_path, get_default(:kolla_ansible_path), create:"True", type: get_default(:sync_method)
+ admin.vm.synced_folder kolla_repo_path, get_default(:kolla_path), create:"True", type: get_default(:sync_method)
admin.vm.synced_folder File.join(vagrant_dir, 'storage', 'operator'), "/data/host", create:"True", type: get_default(:sync_method)
admin.vm.synced_folder File.join(vagrant_dir, 'storage', 'shared'), "/data/shared", create:"True", type: get_default(:sync_method)
admin.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
@@ -231,7 +247,7 @@ Vagrant.configure(2) do |config|
hostname = "#{node_type}0#{i}"
config.vm.define hostname do |node|
node.vm.hostname = "#{hostname}.local"
- node.vm.provision :shell, path: PROVISION_SCRIPT, args: "#{hostname} multinode #{get_default(:kolla_path)}"
+ node.vm.provision :shell, path: PROVISION_SCRIPT, args: "#{hostname} multinode #{get_default(:kolla_path)} #{get_default(:kolla_ansible_path)}"
node.vm.synced_folder File.join(vagrant_dir, 'storage', node_type), "/data/host", create:"True", type: get_default(:sync_method)
node.vm.synced_folder File.join(vagrant_dir, 'storage', 'shared'), "/data/shared", create:"True", type: get_default(:sync_method)
node.vm.synced_folder ".", get_default(:vagrant_shared_folder), disabled: true
diff --git a/contrib/dev/vagrant/Vagrantfile.custom.example b/contrib/dev/vagrant/Vagrantfile.custom.example
index 09af72f5b..aa4193d3f 100644
--- a/contrib/dev/vagrant/Vagrantfile.custom.example
+++ b/contrib/dev/vagrant/Vagrantfile.custom.example
@@ -28,7 +28,8 @@
# bridge_interface: "virbr0",
# vagrant_shared_folder: "/home/vagrant/sync",
# sync_method: "nfs",
-# kolla_path: "/home/vagrant/kolla"
+# kolla_path: "/home/vagrant/kolla",
+# kolla_ansible_path: "/home/vagrant/kolla-ansible"
# }
# },
# virtualbox: {
@@ -37,14 +38,16 @@
# bridge_interface: "wlp3s0b1",
# vagrant_shared_folder: "/home/vagrant/sync",
# sync_method: "virtualbox",
-# kolla_path: "/home/vagrant/kolla"
+# kolla_path: "/home/vagrant/kolla",
+# kolla_ansible_path: "/home/vagrant/kolla-ansible"
# },
# ubuntu: {
# base_image: "ubuntu/wily64",
# bridge_interface: "wlp3s0b1",
# vagrant_shared_folder: "/home/vagrant/sync",
# sync_method: "virtualbox",
-# kolla_path: "/home/vagrant/kolla"
+# kolla_path: "/home/vagrant/kolla",
+# kolla_ansible_path: "/home/vagrant/kolla-ansible"
# }
# }
# }
diff --git a/contrib/dev/vagrant/bootstrap.sh b/contrib/dev/vagrant/bootstrap.sh
index 9bc1fb627..0719e5b1a 100644
--- a/contrib/dev/vagrant/bootstrap.sh
+++ b/contrib/dev/vagrant/bootstrap.sh
@@ -9,6 +9,7 @@
VM=$1
MODE=$2
KOLLA_PATH=$3
+KOLLA_ANSIBLE_PATH=$4
export http_proxy=
export https_proxy=
@@ -168,6 +169,7 @@ function configure_operator {
pip install --upgrade "ansible>=2" python-openstackclient python-neutronclient tox
+ pip install ${KOLLA_ANSIBLE_PATH}
pip install ${KOLLA_PATH}
# Set selinux to permissive
@@ -177,8 +179,9 @@ function configure_operator {
fi
tox -c ${KOLLA_PATH}/tox.ini -e genconfig
- cp -r ${KOLLA_PATH}/etc/kolla/ /etc/kolla
- ${KOLLA_PATH}/tools/generate_passwords.py
+ cp -r ${KOLLA_ANSIBLE_PATH}/etc/kolla/ /etc/kolla
+ cp -r ${KOLLA_PATH}/etc/kolla/* /etc/kolla
+ ${KOLLA_ANSIBLE_PATH}/tools/generate_passwords.py
mkdir -p /usr/share/kolla
chown -R vagrant: /etc/kolla /usr/share/kolla