6356c05194
The Vagrantfile creates a basic up-to-date VirtualBox image with Ubuntu Server 16.04 LTS and all dependencies required to run Tox and DevStack. Provided Vagrantfile requires Vagrant, Virtual Box. A fast internet connection it is recommended. If environment variables like http_proxy, https_proxy and no_proxy it will assume a proxy connection is required to download archives from upload repositories. In such cases Vagrant plugin vagrant-proxyconf is required to provide proxy enviroment to provided virtual machine. Closes-Bug: #1606338 Change-Id: I5fc5060d78276ec5b801118d8d6873f0071ecad9
78 lines
2.3 KiB
Bash
Executable File
78 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Vagrant provisioning script.
|
|
|
|
SOURCE_DIR="${SOURCE_DIR:-$(cd $(dirname $(dirname ${BASH_SOURCE[0]})) && pwd)}"
|
|
STACK_DIR="${STACK_DIR:-/opt/stack}"
|
|
|
|
PROXY_FILE="/etc/profile.d/proxy.sh"
|
|
COLLECTD_CEILOMETER_DIR="$STACK_DIR/collectd-ceilometer-plugin"
|
|
DEVSTACK_DIR="$STACK_DIR/devstack"
|
|
DEVSTACK_REPO="${GIT_BASE:-https://git.openstack.org}/openstack-dev/devstack.git"
|
|
|
|
echo "Start provisioning."
|
|
set -ex
|
|
export DEBIAN_FRONTEND="noninteractive"
|
|
|
|
echo "Update and install required packages."
|
|
sudo apt-get update
|
|
sudo apt-get upgrade -y
|
|
sudo apt-get install -y git python-minimal python-setuptools\
|
|
python-libvirt libvirt-bin
|
|
|
|
echo "Fix proxy variables."
|
|
if [ -r "$PROXY_FILE" ]; then
|
|
echo "Fix proxy enviroment."
|
|
TMP_PROXY_FILE=$(mktemp)
|
|
python "$SOURCE_DIR/tools/get_proxy_env.py" > "$TMP_PROXY_FILE"
|
|
sudo mv "$TMP_PROXY_FILE" "$PROXY_FILE"
|
|
source "$PROXY_FILE"
|
|
fi
|
|
|
|
echo "Install and update main Python packages."
|
|
sudo easy_install pip
|
|
sudo pip install -U urllib3 pip setuptools tox
|
|
|
|
echo "Prepare devstack destination dir: $STACK_DIR."
|
|
sudo mkdir -p "$STACK_DIR"
|
|
sudo chown "$USER.$USER" $STACK_DIR
|
|
|
|
# This makes sure the collectd ceilometer plugin deployed is the one contained
|
|
# in the same folder as the Vagrantfile
|
|
if [ "$COLLECTD_CEILOMETER_DIR" != "$SOURCE_DIR" ]; then
|
|
sudo rm -fR "$COLLECTD_CEILOMETER_DIR" || true
|
|
sudo ln -sfn "$SOURCE_DIR" "$COLLECTD_CEILOMETER_DIR"
|
|
fi
|
|
|
|
if ! [ -d "$DEVSTACK_DIR" ]; then
|
|
echo "Clone devstack."
|
|
git clone "$DEVSTACK_REPO" "$DEVSTACK_DIR"
|
|
fi
|
|
|
|
pushd "$DEVSTACK_DIR"
|
|
cp "$SOURCE_DIR/local.conf" .
|
|
|
|
# unstack if stacking procedure has been already started before
|
|
if [ -f ".stacking" ]; then
|
|
echo "Unstack."
|
|
(./unstack.sh && rm -fR ".stacking") || true
|
|
fi
|
|
|
|
echo "Start stacking."
|
|
|
|
# GIT_BASE is forwarded from host machine to the guest virtual machine to make
|
|
# devstack behaving like as it would have been executed on the bare host machine
|
|
if [ -n "$GIT_BASE" ]; then
|
|
# This is going to replace default values specified by devstack
|
|
# but not the ones defined inside local.conf
|
|
export GIT_BASE=$GIT_BASE
|
|
fi
|
|
|
|
touch ".stacking"
|
|
# This tells collectd the source directory of the plugin is the one
|
|
# where the Vagrantfile is (typically /vagrant)
|
|
COLLECTD_CEILOMETER_DIR="$SOURCE_DIR" "./stack.sh"
|
|
popd
|
|
|
|
echo "Provisioned."
|