Fix failure while installing devstack by vagrant.

Changed box for the different hypervisors to ubuntu 16.04LTS (xenial).
Updated the etcd checksum, as we are using a different version.
Changed the VM creation to be serial, as the compute nodes must be
started after the controller node is already up.
Updated the script to take the correct configuration file as their
names were changed over time.
Changed configuration to use etcd entirely.

Co-Authored-By: Shachar Snapiri <shachar.snapiri@huawei.com>
Change-Id: I0c1df8117393c5c65ce93c00604bca1ee7b38d20
Closes-bug: #1655939
This commit is contained in:
liuxinrj 2017-01-13 16:07:30 +08:00 committed by Shachar Snapiri
parent a77ba0de6a
commit 5b57a4d7d1
6 changed files with 52 additions and 38 deletions

View File

@ -1,7 +1,5 @@
[[local|localrc]]
ETCD_VERSION=v3.0.15
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password

View File

@ -1,6 +1,5 @@
[[local|localrc]]
ETCD_VERSION=v3.0.15
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
SERVICE_PASSWORD=password

50
vagrant/Vagrantfile vendored
View File

@ -1,6 +1,15 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Install vagrant-env plugin: vagrant plugin install vagrant-env
# Start the machines one by one, so we can have the controller up
# before the compute nodes start
ENV['VAGRANT_NO_PARALLEL'] = 'yes'
# libvirt boxes: https://app.vagrantup.com/boxes/search?provider=libvirt&q=ubuntu
# VirtualBox boxes: https://app.vagrantup.com/boxes/search?provider=virtualbox&q=ubuntu
require 'yaml'
vagrant_config = YAML.load_file("provisioning/virtualbox.conf.yml")
@ -16,6 +25,15 @@ Vagrant.configure(2) do |config|
config.vm.synced_folder '..', '/dragonflow'
config.vm.provider 'parallels' do |vb, override|
vb.customize ['set', :id, '--nested-virt', 'on']
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'box-cutter/ubuntu1604')
end
config.vm.provider 'libvirt' do |vb, override|
vb.nested = true
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'generic/ubuntu1604')
end
# Bring up the Devstack controller node on Virtualbox
config.vm.define "devstack_controller" do |devstack_controller|
devstack_controller.vm.host_name = vagrant_config['devstack_controller']['host_name']
@ -27,19 +45,13 @@ Vagrant.configure(2) do |config|
vb.memory = vagrant_config['devstack_controller']['memory']
vb.cpus = vagrant_config['devstack_controller']['cpus']
end
config.vm.provider 'parallels' do |vb, override|
config.vm.provider 'parallels' do |vb|
vb.memory = vagrant_config['devstack_controller']['memory']
vb.cpus = vagrant_config['devstack_controller']['cpus']
vb.customize ['set', :id, '--nested-virt', 'on']
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
config.vm.provider 'libvirt' do |vb, override|
config.vm.provider 'libvirt' do |vb|
vb.memory = vagrant_config['devstack_controller']['memory']
vb.cpus = vagrant_config['devstack_controller']['cpus']
vb.nested = true
vb.graphics_type = 'spice'
vb.video_type = 'qxl'
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
end
@ -49,23 +61,18 @@ Vagrant.configure(2) do |config|
devstack_compute1.vm.network "private_network", ip: vagrant_config['devstack_compute1']['ip']
devstack_compute1.vm.provision "shell", path: "provisioning/setup-base.sh", privileged: false
devstack_compute1.vm.provision "shell", path: "provisioning/setup-compute.sh", privileged: false, :args => "#{vagrant_config['devstack_controller']['ip']}"
config.vm.provider "virtualbox" do |vb|
vb.memory = vagrant_config['devstack_compute1']['memory']
vb.cpus = vagrant_config['devstack_compute1']['cpus']
end
config.vm.provider 'parallels' do |vb, override|
config.vm.provider 'parallels' do |vb|
vb.memory = vagrant_config['devstack_compute1']['memory']
vb.cpus = vagrant_config['devstack_compute1']['cpus']
vb.customize ['set', :id, '--nested-virt', 'on']
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
config.vm.provider 'libvirt' do |vb, override|
config.vm.provider 'libvirt' do |vb|
vb.memory = vagrant_config['devstack_compute1']['memory']
vb.cpus = vagrant_config['devstack_compute1']['cpus']
vb.nested = true
vb.graphics_type = 'spice'
vb.video_type = 'qxl'
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
end
@ -74,23 +81,18 @@ Vagrant.configure(2) do |config|
devstack_compute2.vm.network "private_network", ip: vagrant_config['devstack_compute2']['ip']
devstack_compute2.vm.provision "shell", path: "provisioning/setup-base.sh", privileged: false
devstack_compute2.vm.provision "shell", path: "provisioning/setup-compute.sh", privileged: false, :args => "#{vagrant_config['devstack_controller']['ip']}"
config.vm.provider "virtualbox" do |vb|
vb.memory = vagrant_config['devstack_compute2']['memory']
vb.cpus = vagrant_config['devstack_compute2']['cpus']
end
config.vm.provider 'parallels' do |vb, override|
config.vm.provider 'parallels' do |vb|
vb.memory = vagrant_config['devstack_compute2']['memory']
vb.cpus = vagrant_config['devstack_compute2']['cpus']
vb.customize ['set', :id, '--nested-virt', 'on']
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
config.vm.provider 'libvirt' do |vb, override|
config.vm.provider 'libvirt' do |vb|
vb.memory = vagrant_config['devstack_compute2']['memory']
vb.cpus = vagrant_config['devstack_compute2']['cpus']
vb.nested = true
vb.graphics_type = 'spice'
vb.video_type = 'qxl'
override.vm.box = ENV.fetch('VAGRANT_OVN_VM_BOX', 'boxcutter/ubuntu1404')
end
end
end

View File

@ -1,20 +1,26 @@
#!/usr/bin/env bash
cp /dragonflow/doc/source/multi-node-conf/compute_node_local_controller.conf ~/devstack/local.conf
if [ "$1" != "" ]; then
sed -i -e 's/<IP address of host running everything else>/'$1'/g' ~/devstack/local.conf
fi
cp /dragonflow/doc/source/multi-node-conf/etcd_compute_node.conf ~/devstack/local.conf
# Get the IP address
ipaddress=$(/sbin/ifconfig eth1 | grep 'inet addr' | awk -F' ' '{print $2}' | awk -F':' '{print $2}')
ipaddress=$(ifconfig eth1 2>/dev/null|awk '/inet addr:/ {split($2,a,":"); print a[2]}')
SED_SCRIPT="s/^\(HOST_IP\)=.*/\1=$ipaddress/g"
SED_SCRIPT="$SED_SCRIPT;/TUNNEL_ENDPOINT_IP/d"
SED_SCRIPT="$SED_SCRIPT;s/^\(SERVICE_HOST\)=.*/\1=$1/g"
SED_SCRIPT="$SED_SCRIPT;s/zmq_pubsub_driver/etcd_pubsub_driver/g"
sed -i -e "$SED_SCRIPT" devstack/local.conf
# Adjust some things in local.conf
cat << DEVSTACKEOF >> devstack/local.conf
# Set this to the address of the main DevStack host running the rest of the
# OpenStack services.
Q_HOST=$1
HOST_IP=$ipaddress
HOSTNAME=$(hostname)
DEVSTACKEOF
# Patch to enable IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo echo "net.ipv6.conf.all.disable_ipv6 = 0" >> /etc/sysctl.conf
~/devstack/stack.sh

View File

@ -1,8 +1,14 @@
#!/usr/bin/env bash
cp /dragonflow/doc/source/multi-node-conf/controller_node_local_controller.conf ~/devstack/local.conf
cp /dragonflow/doc/source/multi-node-conf/etcd_controller_node.conf ~/devstack/local.conf
# Get the IP address
ipaddress=$(/sbin/ifconfig eth1 | grep 'inet addr' | awk -F' ' '{print $2}' | awk -F':' '{print $2}')
ipaddress=$(ifconfig eth1 2>/dev/null|awk '/inet addr:/ {split($2,a,":"); print a[2]}')
SED_SCRIPT="s/^\(HOST_IP\)=.*/\1=$ipaddress/g"
SED_SCRIPT="$SED_SCRIPT;/TUNNEL_ENDPOINT_IP/d"
SED_SCRIPT="$SED_SCRIPT;s/df-zmq-publisher-service/df-etcd-pubsub-service/g"
sed -i -e "$SED_SCRIPT" devstack/local.conf
# Adjust some things in local.conf
cat << DEVSTACKEOF >> devstack/local.conf
@ -13,10 +19,13 @@ NETWORK_GATEWAY=10.100.100.100
FIXED_RANGE=10.100.100.0/24
# Good to set these
HOST_IP=$ipaddress
HOSTNAME=$(hostname)
SERVICE_HOST_NAME=${HOSTNAME}
SERVICE_HOST=$ipaddress
DEVSTACKEOF
# Patch to enable IPv6
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
sudo echo "net.ipv6.conf.all.disable_ipv6 = 0" >> /etc/sysctl.conf
~/devstack/stack.sh

View File

@ -1,5 +1,5 @@
---
box: "ubuntu/trusty64"
box: "ubuntu/xenial64"
devstack_controller:
host_name: controller.devstack.dev
ip: "192.168.33.101"