-
Notifications
You must be signed in to change notification settings - Fork 0
/
portaal.sh
executable file
·113 lines (103 loc) · 2.38 KB
/
portaal.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/bash
#variables
BASE_DIR="/home/vagrant/VM2/"
KLANT=""
OMGEVING=""
HOST="web01"
#functions
bestaandeomgeving() {
clear
PS3="Kies een omgeving: "
select omgeving in $(find $BASE_DIR/klanten/$klant -mindepth 1 -maxdepth 1 -type d | xargs -n 1 basename); do
OMGEVING=$omgeving
break
done;
}
nieuweomgeving() {
clear
read -p "Omgevingnaam: " omgeving
OMGEVING=$omgeving
cd $BASE_DIR/klanten/$KLANT/
cp -R --preserve=mode $BASE_DIR/templates/voorbeeld_klant/voorbeeld_omgeving/ $OMGEVING
cd $OMGEVING
ssh-keygen -q -f $KLANT-$OMGEVING-id_rsa -N ""
sed -i -e "s;%klant%;$KLANT;g" -e "s;%omgeving%;$OMGEVING;g" ansible.cfg
sed -i -e "s;%klant%;$KLANT;g" -e "s;%omgeving%;$OMGEVING;g" -e "s;%host%;$HOST;g" hosts
sed -i -e "s;%klant%;$KLANT;g" -e "s;%omgeving%;$OMGEVING;g" -e "s;%host%;$HOST;g" Vagrantfile
}
bestaandeklant() {
clear
PS3="Kies een klant: "
select klant in $(find $BASE_DIR/klanten/ -mindepth 1 -maxdepth 1 -type d | xargs -n 1 basename); do
KLANT=$klant
break
done;
}
nieuweklant() {
clear
read -p "Klantnaam: " klant
KLANT=$klant
cd $BASE_DIR/klanten/
mkdir $KLANT
nieuweomgeving
}
kiesomgeving() {
clear
PS3="Kies een optie: "
select omgevingstatus in "Bestaande omgeving" "Nieuwe omgeving"; do
case $omgevingstatus in
"Bestaande omgeving" )
bestaandeomgeving;;
"Nieuwe omgeving" )
nieuweomgeving;;
esac
break
done;
}
verwijderomgeving() {
#voeg extra commando's toe voor het destroyen van vagrant machines enz
cd $BASE_DIR/klanten/$KLANT/
rm -rf $OMGEVING
}
verwijderklant() {
verwijderomgeving
cd $BASE_DIR/klanten/
rm -rf $KLANT
}
openportaal() {
clear
select optie in "vagrant up" "vagrant halt" "vagrant destroy" "ansible-playbook playbook.yml" "verwijder omgeving"; do
cd $BASE_DIR/klanten/$KLANT/$OMGEVING/
case $optie in
"vagrant up" )
vagrant up;;
"vagrant halt" )
vagrant halt;;
"vagrant destroy" )
vagrant destroy;;
"ansible-playbook playbook.yml" )
ansible-playbook playbook.yml;;
"verwijder omgeving" )
verwijderomgeving;;
esac
break
done;
}
#start of script
clear
# shopt -s dotglob
# shopt -s nullglob
PS3="Kies een optie: "
select klantstatus in "Bestaande klant" "Nieuwe klant" "Verwijder klant"; do
case $klantstatus in
"Bestaande klant" )
bestaandeklant;;
"Nieuwe klant" )
nieuweklant;;
"Verwijder klant" )
verwijderklant;;
esac
kiesomgeving
openportaal
break
done