@@ -7,19 +7,20 @@ ROOT=/export/monkeybox
7
7
# Initialise
8
8
mkdir -p $ROOT /boxes
9
9
touch $ROOT /boxes/boxes.list
10
+ export LIBVIRT_DEFAULT_URI=" qemu:///system"
10
11
11
12
echo MonkeyBox 🐵 1.0
12
13
13
14
usage () {
14
15
echo " Available commands are:"
15
- echo " install: setup monkeynet and templates"
16
+ echo " install: setup monkeynet and mbx templates"
16
17
echo " list: list available environments"
17
18
echo " build: build packages from git repo and sha/tag/branch"
18
- echo " deploy: deploy monkeybox VMs using templates, setup storage"
19
+ echo " deploy: deploy monkeybox VMs using mbx templates, setup storage"
19
20
echo " launch: creates marvin config file and launches a zone"
20
21
echo " test: start marvin tests"
21
22
echo " stop: stop monkeyboxes"
22
- echo " clean : destroy environment"
23
+ echo " destroy : destroy environment"
23
24
}
24
25
25
26
install () {
@@ -29,21 +30,21 @@ install() {
29
30
echo $pwd
30
31
echo " Setting up mbx templates, we assumes the templates are already downloaded in templates directory"
31
32
for xml in $( ls $ROOT /templates/xmls/* xml) ; do virsh define $xml ; done
33
+ sudo cp $ROOT /files/sudoer.mbx /etc/sudoers.d/mbx
32
34
}
33
35
34
36
list () {
35
- echo " List of MonkeyBoxes:"
36
37
echo
37
38
COUNTER=0
38
39
for env in $( cat $ROOT /boxes/boxes.list) ; do
39
- echo " Name: $env "
40
+ echo -e " Name: \033[4m $env \033[0m "
40
41
for vm in $( cat $ROOT /boxes/$env .list) ; do
41
42
ip=$( getent hosts $vm | awk ' { print $1 }' )
42
43
url=" "
43
44
if [[ $vm == * " mgmt" * ]]; then
44
45
url=" http://$ip :8080/client"
45
46
fi
46
- echo " $vm $ip $url "
47
+ echo -e " $vm \t $ip \t $url "
47
48
done
48
49
echo
49
50
options+=($env )
@@ -52,10 +53,9 @@ list() {
52
53
if [ ${# options[@]} -eq 0 ]; then
53
54
echo " No mbx environments found"
54
55
fi
55
-
56
56
echo
57
57
echo " Following mbx templates are available:"
58
- virsh list --all | grep template | awk ' {print $2}'
58
+ virsh list --all | grep mbxt- | awk ' {print $2}'
59
59
}
60
60
61
61
build () {
@@ -64,8 +64,6 @@ build() {
64
64
}
65
65
66
66
deploy () {
67
- set -x
68
-
69
67
echo " Creating and starting monkeyboxes"
70
68
echo FIXME: take input for name, mgmt server, hypervisor and their counts
71
69
echo FIXME: find and use available ID
@@ -79,12 +77,13 @@ deploy() {
79
77
echo $env >> $ROOT /boxes/boxes.list
80
78
81
79
# Clone in boxes directory
82
- virt-clone --original template-kvm-centos7 --name $env -kvm1 --file $ROOT /boxes/$env /centos7-kvm1.qcow2
80
+ echo " Cloning mbx templates"
81
+ virt-clone --original mbxt-kvm-centos7 --name $env -kvm1 --file $ROOT /boxes/$env /centos7-kvm1.qcow2
83
82
echo $env -kvm1 >> $ROOT /boxes/$env .list
84
- virt-clone --original template -kvm-centos7 --name $env -kvm2 --file $ROOT /boxes/$env /centos7-kvm2.qcow2
83
+ virt-clone --original mbxt -kvm-centos7 --name $env -kvm2 --file $ROOT /boxes/$env /centos7-kvm2.qcow2
85
84
echo $env -kvm2 >> $ROOT /boxes/$env .list
86
85
mgmt=" $env -mgmt1"
87
- virt-clone --original template -kvm-centos7 --name $mgmt --file $ROOT /boxes/$env /centos7-mgmt1.qcow2
86
+ virt-clone --original mbxt -kvm-centos7 --name $mgmt --file $ROOT /boxes/$env /centos7-mgmt1.qcow2
88
87
echo $env -mgmt1 >> $ROOT /boxes/$env .list
89
88
90
89
echo " Starting VMs"
@@ -126,7 +125,7 @@ deploy() {
126
125
sshpass -p ' P@ssword123' ssh -o " UserKnownHostsFile=/dev/null" -o " StrictHostKeyChecking=no" root@$env -kvm1 yum install -y cloudstack-agent
127
126
sshpass -p ' P@ssword123' ssh -o " UserKnownHostsFile=/dev/null" -o " StrictHostKeyChecking=no" root@$env -kvm2 yum install -y cloudstack-agent
128
127
129
- echo " VMs created, deploy env using 'mbx deploy '"
128
+ echo " VMs deployed, to launch zone run 'mbx launch '"
130
129
}
131
130
132
131
launch () {
@@ -156,8 +155,9 @@ launch() {
156
155
157
156
# Deploy data center with generated config
158
157
while ! nc -vzw 5 $mgmt_ip 8096 2>&1 > /dev/null; do echo " Waiting for management server to come up" ; sleep 10; done
159
- echo " Management server is UP now, launch data center now"
158
+ echo " Management server is UP now, launching data center now"
160
159
sshpass -p ' P@ssword123' ssh -o " UserKnownHostsFile=/dev/null" -o " StrictHostKeyChecking=no" root@$mgmt_ip python /usr/lib/python2.7/site-packages/marvin/deployDataCenter.py -i /marvin/marvin.cfg
160
+ echo " Launched: http://$mgmt_ip :8080/client"
161
161
}
162
162
163
163
test () {
@@ -170,10 +170,10 @@ test() {
170
170
done
171
171
}
172
172
173
- clean () {
173
+ destroy () {
174
174
env=$1
175
175
if [ -z " $env " ]; then
176
- echo " Usage: mbx clean <env name>. Please pass a name, run 'mbx list' for list of available envs."
176
+ echo " Usage: mbx destroy <env name>. Please pass a name, run 'mbx list' for list of available envs."
177
177
return
178
178
fi
179
179
for vm in $( cat $ROOT /boxes/$env .list) ; do
@@ -195,6 +195,6 @@ case "$1" in
195
195
deploy) deploy;;
196
196
launch) launch;;
197
197
test) test ;;
198
- clean) clean $2 ;;
198
+ destroy) destroy $2 ;;
199
199
* ) usage;;
200
200
esac
0 commit comments