mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 04:06:49 +02:00
Adding artifacts for the tutorial VM.
Change-Id: I5aea02fe70ec012d7fcacebaa2f9b15b949b41b8
This commit is contained in:
parent
552c3827c6
commit
c419f0ef05
1
tools/tutorials/vm/cluster.json
Normal file
1
tools/tutorials/vm/cluster.json
Normal file
@ -0,0 +1 @@
|
||||
{"name":"default","nodes":[{"id":"172.17.0.4","ip":"172.17.0.4","port":9876},{"id":"172.17.0.2","ip":"172.17.0.2","port":9876},{"id":"172.17.0.3","ip":"172.17.0.3","port":9876}],"partitions":[{"id":3,"members":["172.17.0.2","172.17.0.3","172.17.0.4"]},{"id":2,"members":["172.17.0.2","172.17.0.3","172.17.0.4"]},{"id":1,"members":["172.17.0.2","172.17.0.3","172.17.0.4"]}]}
|
||||
42
tools/tutorials/vm/createCluster
Executable file
42
tools/tutorials/vm/createCluster
Executable file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Creates the ONOS cluster using 3 docker container instances.
|
||||
# -----------------------------------------------------------------------------
|
||||
export PATH="$PATH:bin:onos/bin"
|
||||
|
||||
# Creates ONOS cluster using ONOS docker images
|
||||
ONOS_IMAGE=onosproject/onos:1.12.0
|
||||
SSH_KEY=$(cut -d\ -f2 ~/.ssh/id_rsa.pub)
|
||||
|
||||
for i in {1..3}; do
|
||||
echo "Setting up onos-$i..."
|
||||
docker container run --detach --name onos-$i --hostname onos-$i --restart always $ONOS_IMAGE
|
||||
docker exec -i onos-$i /bin/bash -c "mkdir config; cat > config/cluster.json" < $(dirname $0)/cluster.json
|
||||
docker exec -it onos-$i bin/onos-user-key sdn $SSH_KEY >/dev/null 2>&1
|
||||
docker exec -it onos-$i bin/onos-user-password onos rocks >/dev/null 2>&1
|
||||
done
|
||||
|
||||
function waitForStart {
|
||||
sleep 5
|
||||
for i in {1..3}; do
|
||||
echo "Waiting for onos-$i startup..."
|
||||
ip=$(docker container inspect onos-$i | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
|
||||
for t in {1..30}; do
|
||||
curl --fail -sS http://$ip:8181/onos/v1/cluster --user onos:rocks 1>/dev/null 2>&1 && break;
|
||||
sleep 1;
|
||||
done
|
||||
onos $ip summary >/dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
||||
OC1=$(docker container inspect onos-1 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
|
||||
OC2=$(docker container inspect onos-2 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
|
||||
OC3=$(docker container inspect onos-3 | grep \"IPAddress | cut -d: -f2 | sort -u | tr -d '", ')
|
||||
ONOS_INSTANCES="$OC1 $OC2 $OC3"
|
||||
|
||||
waitForStart
|
||||
|
||||
echo "Activating OpenFlow and ProxyARP applications..."
|
||||
onos $OC1 app activate openflow proxyarp
|
||||
onos $OC1
|
||||
|
||||
15
tools/tutorials/vm/destroyCluster
Executable file
15
tools/tutorials/vm/destroyCluster
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Destroys the ONOS cluster by stopping the 3 docker containers.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Creates ONOS cluster using ONOS docker images
|
||||
ONOS_IMAGE=onosproject/onos:1.12.0
|
||||
SSH_KEY=$(cut -d\ -f2 ~/.ssh/id_rsa.pub)
|
||||
|
||||
for i in {1..3}; do
|
||||
echo "Destroying onos-$i..."
|
||||
docker stop onos-$i
|
||||
done
|
||||
|
||||
docker container prune --force
|
||||
12
tools/tutorials/vm/exportVM
Executable file
12
tools/tutorials/vm/exportVM
Executable file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Exports the ONOS Tutorial VM into an OVA file for publishing.
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
export VER=1.12.0
|
||||
export OVA=/tmp/onos-tutorial-$VER.ova
|
||||
rm -f $OVA
|
||||
vboxmanage export "ONOS Tutorial" --output $OVA --manifest \
|
||||
--vsys 0 --product "ONOS" --vendor "Open Networking Foundation" --version "$VER" \
|
||||
--description "ONOS Basic Tutorial VM; 3 node cluster using docker; mininet topologies"
|
||||
wc -c $OVA
|
||||
10
tools/tutorials/vm/prepForExport
Executable file
10
tools/tutorials/vm/prepForExport
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Prepars the ONOS Tutorial VM for export; run from the VM.
|
||||
# -----------------------------------------------------------------------------
|
||||
sudo chattr +i ~/.config/xfce4/desktop/icons*
|
||||
destroyCluster
|
||||
sudo mn -c
|
||||
sudo dd if=/dev/zero of=zerofillfile bs=1M
|
||||
rm -f zerofillfile /tmp/*
|
||||
sudo shutdown now
|
||||
7
tools/tutorials/vm/uploadToS3
Executable file
7
tools/tutorials/vm/uploadToS3
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# Publishes the ONOS Tutorial OVA file.
|
||||
# -----------------------------------------------------------------------------
|
||||
export VER=1.12.0
|
||||
export OVA=/tmp/onos-tutorial-$VER.ova
|
||||
uploadToS3.py $OVA --secret $AWS_SECRET_ACCESS_KEY --key $AWS_ACCESS_KEY_ID --bucket onos --dest vm/
|
||||
Loading…
x
Reference in New Issue
Block a user