-
Notifications
You must be signed in to change notification settings - Fork 2
/
run_multi.sh
executable file
·78 lines (68 loc) · 1.68 KB
/
run_multi.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
#!/bin/bash
function start() {
for i in 1 2 3 4 5
do
echo "start jepsen db node $i"
docker ps -a | grep -qw jepsen_n$i || \
docker run -d --privileged --name jepsen_n$i -e ROOT_PASS="root" siddontang/jepsen_db /run.sh
# if jepsen is not running, start it.
docker ps | grep -qw jepsen_n$i || docker start jepsen_n$i
done
echo "start jepsen control node"
if ! docker ps -a | grep -qw jepsen_control; then
docker run -t -i --privileged --name jepsen_control \
--link jepsen_n1:n1 --link jepsen_n2:n2 --link jepsen_n3:n3 \
--link jepsen_n4:n4 --link jepsen_n5:n5 -v $(pwd):/jepsen_dev siddontang/jepsen_control
else
docker ps | grep -qw jepsen_control || docker start jepsen_control
docker exec -t -i jepsen_control /bin/bash
fi
}
function stop() {
for i in 1 2 3 4 5
do
echo "stop jepsen db node $i"
docker stop jepsen_n$i
done
echo "stop jepsen control node"
docker stop jepsen_control
}
function pull() {
echo "pull jepsen db node"
docker pull siddontang/jepsen_db
echo "pull jepsen control node"
docker pull siddontang/jepsen_control
}
function remove() {
for i in 1 2 3 4 5
do
echo "remove jepsen db node $i"
docker rm -f jepsen_n$i
done
echo "remove jepsen control node"
docker rm -f jepsen_control
}
case $1 in
"start")
start
;;
"stop")
stop
;;
"restart")
stop
start
;;
"pull")
pull
;;
"remove")
remove
;;
"help")
echo "run_multi.sh [start|stop|restart|remove|pull]"
;;
*)
start
;;
esac