diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-02-23 18:27:43 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-02-23 18:27:43 +0000 |
| commit | 3f8bc072706dc7dfb064ea37813dc2ccc3d87e31 (patch) | |
| tree | c18ea9fdabf401e24797e5b77910950460904f88 | |
| parent | 22d32ff280ca0e69c66dd774cf793acfa16ae2df (diff) | |
| parent | aaa38eaf5b9d36d59b4e6eb72fdd11764d19cee9 (diff) | |
| download | kolla-3f8bc072706dc7dfb064ea37813dc2ccc3d87e31.tar.gz kolla-3f8bc072706dc7dfb064ea37813dc2ccc3d87e31.zip | |
Merge "Fix vagrant bootstrapping for ubuntu"
| -rw-r--r-- | dev/vagrant/centos-bootstrap.sh | 7 | ||||
| -rw-r--r-- | dev/vagrant/ubuntu-bootstrap.sh | 150 |
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 |
