aboutsummaryrefslogtreecommitdiff
path: root/dev/vagrant
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-23 18:27:43 +0000
committerGerrit Code Review <review@openstack.org>2016-02-23 18:27:43 +0000
commit3f8bc072706dc7dfb064ea37813dc2ccc3d87e31 (patch)
treec18ea9fdabf401e24797e5b77910950460904f88 /dev/vagrant
parent22d32ff280ca0e69c66dd774cf793acfa16ae2df (diff)
parentaaa38eaf5b9d36d59b4e6eb72fdd11764d19cee9 (diff)
downloadkolla-3f8bc072706dc7dfb064ea37813dc2ccc3d87e31.tar.gz
kolla-3f8bc072706dc7dfb064ea37813dc2ccc3d87e31.zip
Merge "Fix vagrant bootstrapping for ubuntu"
Diffstat (limited to 'dev/vagrant')
-rw-r--r--dev/vagrant/centos-bootstrap.sh7
-rw-r--r--dev/vagrant/ubuntu-bootstrap.sh150
2 files changed, 105 insertions, 52 deletions
diff --git a/dev/vagrant/centos-bootstrap.sh b/dev/vagrant/centos-bootstrap.sh
index 2555eb479..d73c130d7 100644
--- a/dev/vagrant/centos-bootstrap.sh
+++ b/dev/vagrant/centos-bootstrap.sh
@@ -40,7 +40,7 @@ function prep_work {
# Install and configure a quick&dirty docker daemon.
function install_docker {
# Allow for an externally supplied docker binary.
- if [ -f "/data/docker" ]; then
+ if [[ -f "/data/docker" ]]; then
cp /vagrant/docker /usr/bin/docker
chmod +x /usr/bin/docker
else
@@ -90,7 +90,7 @@ function configure_operator {
pip install ~vagrant/kolla
# Note: this trickery requires a patched docker binary.
- if [ "$http_proxy" = "" ]; then
+ if [[ "$http_proxy" = "" ]]; then
su - vagrant sh -c "echo BUILDFLAGS=\\\"--build-env=http_proxy=$http_proxy --build-env=https_proxy=$https_proxy\\\" > ~/kolla/.buildconf"
fi
@@ -136,7 +136,6 @@ EOF
# Launch a local registry (and mirror) to speed up pulling images.
- # 0.9.1 is actually the _latest_ tag.
if [[ ! $(docker ps -a -q -f name=registry) ]]; then
docker run -d \
--name registry \
@@ -154,6 +153,6 @@ EOF
prep_work
install_docker
-if [ "$VM" = "operator" ]; then
+if [[ "$VM" = "operator" ]]; then
configure_operator
fi
diff --git a/dev/vagrant/ubuntu-bootstrap.sh b/dev/vagrant/ubuntu-bootstrap.sh
index 028d09d1e..eda37ef7f 100644
--- a/dev/vagrant/ubuntu-bootstrap.sh
+++ b/dev/vagrant/ubuntu-bootstrap.sh
@@ -1,56 +1,117 @@
#!/bin/bash
+#
+# Bootstrap script to configure all nodes.
+#
VM=$1
MODE=$2
KOLLA_PATH=$3
-REGISTRY=operator.local
-REGISTRY_PORT=4000
+export http_proxy=
+export https_proxy=
-install_ansible() {
- echo "Installing Ansible"
- apt-get install -y software-properties-common
- apt-add-repository -y ppa:ansible/ansible
+if [ "$MODE" = 'aio' ]; then
+ # Run registry on port 4000 since it may collide with keystone when doing AIO
+ REGISTRY_PORT=4000
+ SUPPORT_NODE=operator
+else
+ REGISTRY_PORT=5000
+ SUPPORT_NODE=support01
+fi
+REGISTRY=operator.local:${REGISTRY_PORT}
+ADMIN_PROTOCOL="http"
+
+# Install common packages and do some prepwork.
+function prep_work {
apt-get update
- apt-get install -y ansible=1.9.4*
- cat >/root/.ansible.cfg <<-EOF
+ apt-get install -y python-mysqldb python-dev build-essential libssl-dev libffi-dev libxml2-dev libxslt-dev
+ apt-get clean
+ easy_install pip
+ pip install --upgrade docker-py
+}
+
+# Install and configure a quick&dirty docker daemon.
+function install_docker {
+ # Allow for an externally supplied docker binary.
+ if [[ -f "/data/docker" ]]; then
+ cp /vagrant/docker /usr/bin/docker
+ chmod +x /usr/bin/docker
+ else
+ apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
+ echo "deb https://apt.dockerproject.org/repo ubuntu-wily main" > /etc/apt/sources.list.d/docker.list
+ apt-get update
+ apt-get install -y docker-engine
+ sed -i -r "s,(ExecStart)=(.+),\1=/usr/bin/docker daemon --insecure-registry ${REGISTRY} --registry-mirror=http://${REGISTRY}|" /lib/systemd/system/docker.service
+ systemctl daemon-reload
+ systemctl enable docker
+ systemctl restart docker
+ fi
+}
+
+function configure_kolla {
+ # Use local docker registry
+ sed -i -r "s,^[# ]*namespace *=.+$,namespace = ${REGISTRY}/lokolla," /etc/kolla/kolla-build.conf
+ sed -i -r "s,^[# ]*push *=.+$,push = True," /etc/kolla/kolla-build.conf
+ sed -i -r "s,^[# ]*docker_registry:.+$,docker_registry: \"${REGISTRY}\"," /etc/kolla/globals.yml
+ sed -i -r "s,^[# ]*docker_namespace:.+$,docker_namespace: \"lokolla\"," /etc/kolla/globals.yml
+ sed -i -r "s,^[# ]*docker_insecure_registry:.+$,docker_insecure_registry: \"True\"," /etc/kolla/globals.yml
+ # Set network interfaces
+ sed -i -r "s,^[# ]*network_interface:.+$,network_interface: \"eth1\"," /etc/kolla/globals.yml
+ sed -i -r "s,^[# ]*neutron_external_interface:.+$,neutron_external_interface: \"eth2\"," /etc/kolla/globals.yml
+}
+
+# Configure the operator node and install some additional packages.
+function configure_operator {
+ apt-get install -y git mariadb-client selinux-utils && apt-get clean
+ pip install --upgrade "ansible<2" python-openstackclient python-neutronclient tox
+
+ pip install ~vagrant/kolla
+
+ # Note: this trickery requires a patched docker binary.
+ if [[ "$http_proxy" = "" ]]; then
+ su - vagrant sh -c "echo BUILDFLAGS=\\\"--build-env=http_proxy=$http_proxy --build-env=https_proxy=$https_proxy\\\" > ~/kolla/.buildconf"
+ fi
+
+ cp -r ~vagrant/kolla/etc/kolla/ /etc/kolla
+ oslo-config-generator --config-file \
+ ~vagrant/kolla/etc/oslo-config-generator/kolla-build.conf \
+ --output-file /etc/kolla/kolla-build.conf
+ mkdir -p /usr/share/kolla
+ chown -R vagrant: /etc/kolla /usr/share/kolla
+
+ configure_kolla
+
+ # Make sure Ansible uses scp.
+ cat > ~vagrant/.ansible.cfg <<EOF
[defaults]
forks=100
[ssh_connection]
scp_if_ssh=True
EOF
-}
+ chown vagrant: ~vagrant/.ansible.cfg
-install_docker() {
- echo "Installing Docker"
- apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
- echo "deb https://apt.dockerproject.org/repo ubuntu-vivid main" > /etc/apt/sources.list.d/docker.list
- apt-get update
- apt-get install -y docker-engine
- sed -i -r "s,(ExecStart)=(.+),\1=/usr/bin/docker daemon -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --insecure-registry ${REGISTRY}:${REGISTRY_PORT}," /lib/systemd/system/docker.service
- systemctl daemon-reload
- systemctl enable docker
- systemctl restart docker
-}
+ # The openrc file.
+ cat > ~vagrant/openrc <<EOF
+export OS_AUTH_URL="$(ADMIN_PROTOCOL)://${SUPPORT_NODE}:35357/v3"
+export OS_USERNAME=admin
+export OS_PASSWORD=password
+export OS_TENANT_NAME=admin
+export OS_VOLUME_API_VERSION=3
+export OS_USER_DOMAIN_ID=default
+EOF
+ chown vagrant: ~vagrant/openrc
-install_python_deps() {
- echo "Installing Python"
- # Python
- apt-get install -y python-setuptools python-dev libffi-dev libssl-dev
- easy_install pip
- pip install --upgrade pip virtualenv virtualenvwrapper
-}
+ mkdir -p /etc/kolla/config/nova/
+ cat > /etc/kolla/config/nova/nova-compute.conf <<EOF
+[libvirt]
+virt_type=qemu
+EOF
-install_ntp() {
- echo "Installing NTP"
- # NTP
- apt-get install -y ntp
-}
-create_registry() {
- echo "Creating Docker Registry"
- docker run -d \
+ # Launch a local registry (and mirror) to speed up pulling images.
+ if [[ ! $(docker ps -a -q -f name=registry) ]]; then
+ docker run -d \
--name registry \
--restart=always \
-p ${REGISTRY_PORT}:5000 \
@@ -58,15 +119,9 @@ create_registry() {
-e MIRROR_SOURCE=https://registry-1.docker.io \
-e MIRROR_SOURCE_INDEX=https://index.docker.io \
-e STORAGE_PATH=/var/lib/registry \
- -e GUNICORN_OPTS=[--preload] \
- -e SEARCH_BACKEND=sqlalchemy \
-v /data/host/registry-storage:/var/lib/registry \
- registry:0.9.1
-}
-
-configure_kolla() {
- echo "Configuring Kolla"
- pip install -r ${KOLLA_PATH}/requirements.txt
+ registry:2
+ fi
}
echo "Kernel version $(uname -r)"
@@ -82,10 +137,9 @@ if [[ $(uname -r) != *"4.2"* ]]; then
sleep 3
fi
-install_ansible
+prep_work
install_docker
-install_ntp
-install_python_deps
-create_registry
-configure_kolla
+if [[ "$VM" = "operator" ]]; then
+ configure_operator
+fi