blob: 7df5f6890fa3027e363432a2263bb09b77db75a3 [file] [log] [blame]
Andy Bavier628710c2015-08-05 15:41:39 -04001#!/bin/bash
2set -x
Andy Bavierd54e0f52015-08-04 17:25:17 -04003
Andy Bavieradc065d2015-09-01 17:43:03 -04004# This script assumes that it is being run on the ctl node of the OpenStack
Andy Bavier628710c2015-08-05 15:41:39 -04005# profile on CloudLab.
Andy Bavierd54e0f52015-08-04 17:25:17 -04006
Andy Bavier628710c2015-08-05 15:41:39 -04007XOS="http://ctl:9999/"
Andy Bavierd54e0f52015-08-04 17:25:17 -04008AUTH="padmin@vicci.org:letmein"
Andy Bavieradc065d2015-09-01 17:43:03 -04009CORD=0
10IMAGE="xos"
Andy Bavierb79acf72015-09-01 17:57:52 -040011KEYFILE="~/.ssh/id_rsa"
Andy Bavier628710c2015-08-05 15:41:39 -040012
Andy Bavier8954c2e2015-09-01 14:19:11 -040013# Create public key if none present
Andy Bavierb79acf72015-09-01 17:57:52 -040014[ -e $KEYFILE ] || cat /dev/zero | ssh-keygen -q -N ""
Andy Bavier8954c2e2015-09-01 14:19:11 -040015
Andy Bavier628710c2015-08-05 15:41:39 -040016# Install Docker
Andy Bavierb79acf72015-09-01 17:57:52 -040017which docker > /dev/null || wget -qO- https://get.docker.com/ | sh
Andy Bavier628710c2015-08-05 15:41:39 -040018sudo usermod -aG docker $(whoami)
19
20sudo apt-get install httpie
21
Andy Bavieradc065d2015-09-01 17:43:03 -040022if [ "$CORD" -ne 0 ]
23then
Andy Bavierb79acf72015-09-01 17:57:52 -040024 cp $KEYFILE.pub xos/observers/vcpe/vcpe_public_key
25 cp $KEYFILE xos/observers/vcpe/vcpe_private_key
Andy Bavieradc065d2015-09-01 17:43:03 -040026fi
27
Andy Bavier1b8fd472015-08-06 10:33:14 -040028sudo docker build -t xos .
Andy Bavier628710c2015-08-05 15:41:39 -040029
Andy Bavieradc065d2015-09-01 17:43:03 -040030if [ "$CORD" -ne 0 ]
31then
32 sudo docker build -t cord -f Dockerfile.cord .
33 IMAGE="cord"
34fi
35
Andy Bavier628710c2015-08-05 15:41:39 -040036# OpenStack is using port 8000...
37MYIP=$( hostname -i )
Andy Bavieradc065d2015-09-01 17:43:03 -040038sudo docker run -d --add-host="ctl:$MYIP" -p 9999:8000 $IMAGE
Andy Bavier628710c2015-08-05 15:41:39 -040039
40echo "Waiting for XOS to come up"
41until http $XOS &> /dev/null
42do
43 sleep 1
44done
45
Andy Bavierd54e0f52015-08-04 17:25:17 -040046# Copy public key
47# BUG: Shouldn't have to set the 'enacted' field...
Andy Bavierb79acf72015-09-01 17:57:52 -040048PUBKEY=$( cat $KEYFILE.pub )
Andy Bavierd54e0f52015-08-04 17:25:17 -040049http --auth $AUTH PATCH $XOS/xos/users/1/ public_key="$PUBKEY" enacted=$( date "+%Y-%m-%dT%T")
50
Andy Bavierd54e0f52015-08-04 17:25:17 -040051# Set up controller
52http --auth $AUTH POST $XOS/xos/controllers/ name=CloudLab deployment=$XOS/xos/deployments/1/ backend_type=OpenStack version=Juno auth_url="http://ctl:5000/v2.0" admin_user=admin admin_tenant=admin admin_password="N!ceD3m0"
53
54# Add controller to site
55http --auth $AUTH PATCH $XOS/xos/sitedeployments/1/ controller=$XOS/xos/controllers/1/
56
57# Add image
58http --auth $AUTH POST $XOS/xos/images/ name=trusty-server-multi-nic disk_format=QCOW2 container_format=BARE
59
60# Activate image
61http --auth $AUTH POST $XOS/xos/imagedeploymentses/ deployment=$XOS/xos/deployments/1/ image=$XOS/xos/images/1/
62
63# Add node
Andy Bavieradff3dc2015-08-07 12:28:49 -040064NODES=$( sudo bash -c "source /root/setup/admin-openrc.sh ; nova hypervisor-list" |grep cloudlab|awk '{print $4}' )
65for NODE in $NODES
66do
67 http --auth $AUTH POST $XOS/xos/nodes/ name=$NODE site_deployment=$XOS/xos/sitedeployments/1/
68done
Andy Bavierd54e0f52015-08-04 17:25:17 -040069
70# Modify networktemplate/2
71# BUG: Shouldn't have to set the controller_kind field, it's invalid in the initial fixture
Andy Bavier753f4822015-08-06 10:34:12 -040072FLATNET=$( sudo bash -c "source /root/setup/admin-openrc.sh ; neutron net-list" |grep flat|awk '{print $4}' )
Andy Bavier1b8fd472015-08-06 10:33:14 -040073http --auth $AUTH PATCH $XOS/xos/networktemplates/2/ shared_network_name=$FLATNET controller_kind=""