c7297e04c1
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
92 lines
2.4 KiB
Bash
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
|
|
|