kolla-ansible/dev/vagrant/ubuntu-bootstrap.sh
Diogo Monteiro c7297e04c1 Update Vagrant's Ubuntu box provisioning script
Starting from Vivid Ubuntu uses systemd as the
default boot manager instead of upstart. Updating
the way the docker daemon is configured to follow
the systemd way.
Setting env variable GUNICORN_OPTS=[--preload]
to fix race condition and avoid IntegrityError
when pushing images to local registry

Change-Id: I841f85015c2c3683ef7e1e454ec1369263063c45
Related-bug: https://github.com/docker/docker-registry/issues/518
Closes-Bug: #1523336
2015-12-07 10:18:40 -05:00

92 lines
2.4 KiB
Bash

#!/bin/bash
VM=$1
MODE=$2
KOLLA_PATH=$3
REGISTRY=operator.local
REGISTRY_PORT=4000
install_ansible() {
echo "Installing Ansible"
apt-get install -y software-properties-common
apt-add-repository -y ppa:ansible/ansible
apt-get update
apt-get install -y ansible=1.9.4*
cat >/root/.ansible.cfg <<-EOF
[defaults]
forks=100
[ssh_connection]
scp_if_ssh=True
EOF
}
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=1.8.2*
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
}
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
}
install_ntp() {
echo "Installing NTP"
# NTP
apt-get install -y ntp
}
create_registry() {
echo "Creating Docker Registry"
docker run -d \
--name registry \
--restart=always \
-p ${REGISTRY_PORT}:5000 \
-e STANDALONE=True \
-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
}
echo "Kernel version $(uname -r)"
if [[ $(uname -r) != *"3.19"* ]]; then
echo "Going to update kernel image"
apt-get update
apt-get install -y linux-image-generic-lts-vivid
# VM needs to be rebooted for docker to pickup the changes
echo "Rebooting for kernel changes"
echo "After reboot re-run vagrant provision to finish provising the box"
reboot
# Sleep for a bit to let vagrant exit properly
sleep 3
fi
install_ansible
install_docker
install_ntp
install_python_deps
create_registry
configure_kolla