+++ /dev/null
-#!/bin/bash
-
-if [[ ${CONTROLLERFEATURES} == *federation* ]]; then
-
-cat > ${WORKSPACE}/install_federation_rabbit.sh <<EOF
-
- echo "Install rabbit server ..."
- sudo yum install -y erlang
- sudo yum install -y rabbitmq-server # Technically we should only install on the first ODL
-
- echo "Starting rabbit server ..."
- sudo chkconfig rabbitmq-server
- sudo service rabbitmq-server start
-
- echo "Add federation user to rabbit server ..."
- sudo /usr/sbin/rabbitmqctl add_user federation federation
- sudo rabbitmqctl set_permissions -p / federation ".*" ".*" ".*"
-
-EOF
-
-cat > ${WORKSPACE}/configure_federation_rabbit.sh <<EOF
-
- echo "Configuring rabbit broker for ODL ..."
- SERVICECONF=\$(find "/tmp/${BUNDLEFOLDER}/" -name "federation-service-impl-*config.xml")
- sed -ie "s/<mqBrokerIp>.*</<mqBrokerIp>\$1</g" \${SERVICECONF}
- sed -ie "s/<site-ip>.*</<site-ip>\$2</g" \${SERVICECONF}
- sed -ie "s/CONTROL_QUEUE_.*</CONTROL_QUEUE_\$2</g" \${SERVICECONF}
- sed -ie "s/guest/federation/g" \${SERVICECONF}
- cat \${SERVICECONF}
-
-EOF
-
- NUM_ODLS_PER_SITE=$((NUM_ODL_SYSTEM / NUM_OPENSTACK_SITES))
- echo "Copying config files to ODL Controller folder"
- for i in `seq 1 ${NUM_OPENSTACK_SITES}`
- do
- FIRST_ODL_IN_SITE=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + 1))_IP
- RABBIT_SERVER_IP=${!FIRST_ODL_IN_SITE} # We install Rabbit on the first ODL in each site
- CONTROLLERIP=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
-
- scp ${WORKSPACE}/install_federation_rabbit.sh ${RABBIT_SERVER_IP}:/tmp/
- ssh ${RABBIT_SERVER_IP} 'bash /tmp/install_federation_rabbit.sh'
-
- for j in `seq 1 ${NUM_ODLS_PER_SITE}`
- do
- ODL_IP=ODL_SYSTEM_$(((i - 1) * NUM_ODLS_PER_SITE + j))_IP
- if [ ${NUM_ODLS_PER_SITE} -gt 1 ]; then
- HA_PROXY_IP=OPENSTACK_HAPROXY_${i}_IP
- SITE_IP=${!HA_PROXY_IP}
- else
- SITE_IP=${RABBIT_SERVER_IP}
- fi
- echo "Setting rabbit client site IP to ${SITE_IP} and rabbit servier IP to ${RABBIT_SERVER_IP} on ${!ODL_IP}"
-
- scp ${WORKSPACE}/configure_federation_rabbit.sh ${!ODL_IP}:/tmp/
- ssh ${!ODL_IP} 'bash /tmp/configure_federation_rabbit.sh' ${RABBIT_SERVER_IP} ${SITE_IP}
- done
- done
-fi
NEUTRON_ROUTERS_API = NEUTRON_NB_API + "/" + "routers"
OSREST = "/v2.0/networks"
-# Openstack System Prompt
-OS_SYSTEM_PROMPT = "$"
-
# Other global variables
# TODO: Move these to more apropriate sections.
PORT = "8080"
# FIXME: Move to a separate Resource and add description.
${OPERATIONAL_TOPO_API}
... /restconf/operational/network-topology:network-topology
-${OS_SYSTEM_PROMPT} \$ # Prompt substring specific to OpenStack systems.
-${OS_SYSTEM_PROMPT_STRICT} \]$ # Prompt substring specific to OpenStack systems.
${OS_CMD_SUCCESS} Command Returns 0
# FIXME: Move to a separate Neutron-related Resource and add description.
${OSREST}
+++ /dev/null
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
-
- config.vm.provision "shell", path: "puppet/scripts/bootstrap.sh"
-
- config.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "base.pp"
- end
-
- config.vm.define "ds-ctl-havana" do |dsctlh|
- dsctlh.vm.box = "saucy64"
- dsctlh.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsctlh.vm.hostname = "ds-ctl"
- dsctlh.vm.network "private_network", ip: "192.168.50.20"
- dsctlh.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsctlh.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-control.pp"
- puppet.facter = {
- "devstack_branch" => "stable/havana"
- }
- end
- end
-
- config.vm.define "ds-c1-havana" do |dsc1h|
- dsc1h.vm.box = "saucy64"
- dsc1h.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc1h.vm.hostname = "ds-c1"
- dsc1h.vm.network "private_network", ip: "192.168.50.21"
- dsc1h.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc1h.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "ds-compute.pp"
- puppet.facter = {
- "devstack_branch" => "stable/havana"
- }
- end
- end
-
- config.vm.define "ds-c2-havana" do |dsc2h|
- dsc2h.vm.box = "saucy64"
- dsc2h.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc2h.vm.hostname = "ds-c2"
- dsc2h.vm.network "private_network", ip: "192.168.50.22"
- dsc2h.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc2h.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "ds-compute.pp"
- puppet.facter = {
- "devstack_branch" => "stable/havana"
- }
- end
- end
-
- config.vm.define "ds-ctl-icehouse" do |dsctli|
- dsctli.vm.box = "saucy64"
- dsctli.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsctli.vm.hostname = "ds-ctl"
- dsctli.vm.network "private_network", ip: "192.168.50.20"
- dsctli.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsctli.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-control.pp"
- puppet.facter = {
- "devstack_branch" => "stable/icehouse"
- }
- end
- end
-
- config.vm.define "ds-c1-icehouse" do |dsc1i|
- dsc1i.vm.box = "saucy64"
- dsc1i.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc1i.vm.hostname = "ds-c1"
- dsc1i.vm.network "private_network", ip: "192.168.50.21"
- dsc1i.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc1i.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-compute.pp"
- puppet.facter = {
- "devstack_branch" => "stable/icehouse"
- }
- end
- end
-
- config.vm.define "ds-c2-icehouse" do |dsc2i|
- dsc2i.vm.box = "saucy64"
- dsc2i.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc2i.vm.hostname = "ds-c2"
- dsc2i.vm.network "private_network", ip: "192.168.50.22"
- dsc2i.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc2i.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-compute.pp"
- puppet.facter = {
- "devstack_branch" => "stable/icehouse"
- }
- end
- end
-
- config.vm.define "ds-ctl-juno" do |dsctlj|
- dsctlj.vm.box = "saucy64"
- dsctlj.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsctlj.vm.hostname = "ds-ctl"
- dsctlj.vm.network "private_network", ip: "192.168.50.20"
- dsctlj.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsctlj.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-control.pp"
- puppet.facter = {
- "devstack_branch" => "master"
- }
- end
- end
-
- config.vm.define "ds-c1-juno" do |dsc1j|
- dsc1j.vm.box = "saucy64"
- dsc1j.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc1j.vm.hostname = "ds-c1"
- dsc1j.vm.network "private_network", ip: "192.168.50.21"
- dsc1j.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc1j.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-compute.pp"
- puppet.facter = {
- "devstack_branch" => "master"
- }
- end
- end
-
- config.vm.define "ds-c2-juno" do |dsc2j|
- dsc2j.vm.box = "saucy64"
- dsc2j.vm.box_url = "http://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-13.10_chef-provisionerless.box"
- dsc2j.vm.hostname = "ds-c2"
- dsc2j.vm.network "private_network", ip: "192.168.50.22"
- dsc2j.vm.provider :virtualbox do |vb|
- vb.memory = 4096
- end
- dsc2j.vm.provision "puppet" do |puppet|
- puppet.hiera_config_path = "puppet/hiera.yaml"
- puppet.working_directory = "/vagrant/puppet"
- puppet.manifests_path = "puppet/manifests"
- puppet.manifest_file = "devstack-compute.pp"
- puppet.facter = {
- "devstack_branch" => "master"
- }
- end
- end
-
-end
+++ /dev/null
----
-:backends:
- - yaml
- - json
-:yaml:
- :datadir: /vagrant/puppet/hieradata
-:json:
- :datadir: /vagrant/puppet/hieradata
-:hierarchy:
- - hosts
+++ /dev/null
-{
- "hosts": {
- "opendaylight": {
- "name": "opendaylight",
- "ipaddress": "192.168.50.1"
- },
- "ds-ctl": {
- "name": "ds-ctl",
- "ipaddress": "192.168.50.20"
- },
- "ds-c1": {
- "name": "ds-c1",
- "ipaddress": "192.168.50.21"
- },
- "ds-c2": {
- "name": "ds-c2",
- "ipaddress": "192.168.50.22"
- }
- }
-}
+++ /dev/null
-package {'git':
- ensure => 'installed'
-}
-
-$hosts = hiera('hosts')
-
-file { '/etc/hosts':
- ensure => file,
- owner => 'root',
- group => 'root',
- content => template('/vagrant/puppet/templates/hosts.erb')
-}
+++ /dev/null
-vcsrepo { '/home/vagrant/devstack':
- ensure => present,
- provider => git,
- user => 'vagrant',
- source => 'https://github.com/openstack-dev/devstack.git',
- revision => $devstack_branch,
- before => File['/home/vagrant/devstack/local.conf']
-}
-
-$hosts = hiera('hosts')
-
-file { '/home/vagrant/devstack/local.conf':
- ensure => present,
- owner => 'vagrant',
- group => 'vagrant',
- content => template('/vagrant/puppet/templates/compute.local.conf.erb')
-}
+++ /dev/null
-vcsrepo { '/home/vagrant/devstack':
- ensure => present,
- provider => git,
- user => 'vagrant',
- source => 'https://github.com/openstack-dev/devstack.git',
- revision => $devstack_branch,
- before => File['/home/vagrant/devstack/local.conf']
-}
-
-$hosts = hiera('hosts')
-
-file { '/home/vagrant/devstack/local.conf':
- ensure => present,
- owner => 'vagrant',
- group => 'vagrant',
- content => template('/vagrant/puppet/templates/control.local.conf.erb')
-}
+++ /dev/null
-#!/usr/bin/env bash
-#
-# This bootstraps Puppet on Ubuntu 12.04 LTS.
-#
-set -e
-
-# Load up the release information
-. /etc/lsb-release
-
-REPO_DEB_URL="http://apt.puppetlabs.com/puppetlabs-release-${DISTRIB_CODENAME}.deb"
-
-#--------------------------------------------------------------------
-# NO TUNABLES BELOW THIS POINT
-#--------------------------------------------------------------------
-if [ "$(id -u)" != "0" ]; then
- echo "This script must be run as root." >&2
- exit 1
- fi
-
- if which puppet > /dev/null 2>&1; then
- echo "Puppet is already installed."
- exit 0
- fi
-
- # Do the initial apt-get update
- echo "Initial apt-get update..."
- apt-get update >/dev/null
-
- # Install wget if we have to (some older Ubuntu versions)
- echo "Installing wget..."
- apt-get install -y wget >/dev/null
-
- # Install the PuppetLabs repo
- echo "Configuring PuppetLabs repo..."
- repo_deb_path=$(mktemp)
- wget --output-document="${repo_deb_path}" "${REPO_DEB_URL}" 2>/dev/null
- dpkg -i "${repo_deb_path}" >/dev/null
- apt-get update >/dev/null
-
- # Install Puppet
- echo "Installing Puppet..."
- apt-get install -y puppet >/dev/null
-
- echo "Puppet installed!"
-
- # Install RubyGems for the provider
- echo "Installing RubyGems..."
- apt-get install -y rubygems >/dev/null
- gem install --no-ri --no-rdoc rubygems-update
- update_rubygems >/dev/null
-
- # Installing Puppet Modules
- puppet module install puppetlabs/vcsrepo
- puppet module install puppetlabs/stdlib
-
-
+++ /dev/null
-[[local|localrc]]
-SCREEN_LOGDIR=/opt/stack/log
-LOGFILE=stack.sh.log
-LOG_COLOR=False
-#OFFLINE=True
-#RECLONE=yes
-
-HOST_IP=<%= @hosts[@hostname]['ipaddress'] %>
-HOST_NAME=<%= @hosts[@hostname]['name'] %>
-SERVICE_HOST=<%= @hosts['ds-ctl']['name'] %>
-SERVICE_HOST_NAME=<%= @hosts['ds-ctl']['name'] %>
-
-Q_HOST=$SERVICE_HOST
-MYSQL_HOST=$SERVICE_HOST
-RABBIT_HOST=$SERVICE_HOST
-GLANCE_HOSTPORT=$SERVICE_HOST:9292
-KEYSTONE_AUTH_HOST=$SERVICE_HOST
-KEYSTONE_SERVICE_HOST=$SERVICE_HOST
-
-MYSQL_PASSWORD=mysql
-RABBIT_PASSWORD=rabbit
-QPID_PASSWORD=rabbit
-SERVICE_TOKEN=service
-SERVICE_PASSWORD=admin
-ADMIN_PASSWORD=admin
-
-VNCSERVER_PROXYCLIENT_ADDRESS=$HOST_IP
-VNCSERVER_LISTEN=0.0.0.0
-
-disable_all_services
-enable_service neutron quantum nova n-cpu n-novnc rabbit odl-compute
-
-# ODL WITH ML2
-Q_PLUGIN=ml2
-Q_ML2_PLUGIN_MECHANISM_DRIVERS=opendaylight,logger
-ODL_MGR_IP=<%= @hosts['opendaylight']['ipaddress'] %>
-
-ENABLE_TENANT_TUNNELS=True
-# Q_ML2_TENANT_NETWORK_TYPE=vlan
-# ENABLE_TENANT_VLANS=True
-Q_ML2_TENANT_NETWORK_TYPE=vxlan
-#Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_types=vxlan)
-
-#FLOATING_RANGE=192.168.254.64/26
-
-EXTRA_OPTS=(scheduler_default_filters=AllHostsFilter)
-
-[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
-[agent]
-minimize_polling=True
-
-[ml2_odl]
-url=http://<%= @hosts['opendaylight']['ipaddress'] %>:8080/controller/nb/v2/neutron
-username=admin
-password=admin
+++ /dev/null
-[[local|localrc]]
-SCREEN_LOGDIR=/opt/stack/log
-LOGFILE=stack.sh.log
-LOG_COLOR=False
-#OFFLINE=True
-RECLONE=yes
-
-HOST_IP=<%= @hosts['ds-ctl']['ipaddress'] %>
-HOST_NAME=<%= @hosts['ds-ctl']['name'] %>
-SERVICE_HOST=$HOST_IP
-SERVICE_HOST_NAME=$HOST_NAME
-
-Q_HOST=$SERVICE_HOST
-MYSQL_HOST=$SERVICE_HOST
-RABBIT_HOST=$SERVICE_HOST
-GLANCE_HOSTPORT=$SERVICE_HOST:9292
-KEYSTONE_AUTH_HOST=$SERVICE_HOST
-KEYSTONE_SERVICE_HOST=$SERVICE_HOST
-
-MYSQL_PASSWORD=mysql
-RABBIT_PASSWORD=rabbit
-QPID_PASSWORD=rabbit
-SERVICE_TOKEN=service
-SERVICE_PASSWORD=admin
-ADMIN_PASSWORD=admin
-
-enable_service rabbit
-disable_service qpid
-
-enable_service n-cond
-enable_service n-cpu
-enable_service n-novnc
-disable_service n-net
-enable_service q-svc
-# enable_service q-agt
-enable_service q-dhcp
-enable_service q-l3
-enable_service q-meta
-enable_service quantum
-enable_service odl-compute
-
-# ODL WITH ML2
-Q_PLUGIN=ml2
-Q_ML2_PLUGIN_MECHANISM_DRIVERS=opendaylight,logger
-ODL_MGR_IP=<%= @hosts['opendaylight']['ipaddress'] %>
-
-ENABLE_TENANT_TUNNELS=True
-# ENABLE_TENANT_VLANS=True
-# TENANT_VLAN_RANGE=500:510
-
-Q_ML2_TENANT_NETWORK_TYPE=vxlan
-# Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_types=vxlan)
-
-#FLOATING_RANGE=192.168.254.64/26
-#PUBLIC_NETWORK_GATEWAY=192.168.75.254
-
-[[post-config|/etc/neutron/plugins/ml2/ml2_conf.ini]]
-[agent]
-minimize_polling=True
-
-[ml2_odl]
-url=http://<%= @hosts['opendaylight']['ipaddress'] %>:8080/controller/nb/v2/neutron
-username=admin
-password=admin
+++ /dev/null
-## Do Not Edit. Created by Puppet ##
-127.0.0.1 localhost
-255.255.255.255 broadcasthost
-::1 localhost
-fe80::1%lo0 localhost
-<% @hosts.values.each do |h| %>
-<%= h["ipaddress"] %> <%= h["name"] %>
-<% end %>