1
1
#! /bin/sh
2
- # set -e # TODO
2
+ set -e
3
3
4
- unalias cp 2> /dev/null
4
+ unalias cp 2> /dev/null || true
5
5
alias docker-compose=' docker compose'
6
6
7
- set_password () {
8
- read -p " Enter your openv2x external ip: " ip
9
- read -p " Enter your redis root password (do not include @): " redis_root
10
- read -p " Enter your mariadb1 root password (do not include @): " mariadb1_root # TODO add url encode
11
- read -p " Enter your mariadb1 dandelion password (do not include @): " mariadb1_dandelion
12
- read -p " Enter your emqx root password (do not include @): " emqx_root
7
+ set_env () {
8
+ [[ ! -n " $external_ip " ]] && read -p " Enter your openv2x external ip: " external_ip
9
+ [[ ! -n " $redis_root " ]] && read -p " Enter your redis root password (do not include @): " redis_root
10
+ [[ ! -n " $mariadb_root " ]] && read -p " Enter your mariadb root password (do not include @): " mariadb_root # TODO add url encode
11
+ [[ ! -n " $mariadb_dandelion " ]] && read -p " Enter your mariadb dandelion password (do not include @): " mariadb_dandelion
12
+ [[ ! -n " $emqx_root " ]] && read -p " Enter your emqx root password (do not include @): " emqx_root
13
+
14
+ echo " export external_ip=$external_ip "
15
+ echo " export redis_root=$redis_root "
16
+ echo " export mariadb_root=$mariadb_root "
17
+ echo " export mariadb_dandelion=$mariadb_dandelion "
18
+ echo " export emqx_root=$emqx_root "
13
19
}
14
20
15
21
verify_input () {
16
- if [ ! -n " $ip " ] ; then
22
+ if [[ ! -n " $external_ip " ] ] ; then
17
23
echo " you have not input openv2x external ip!"
18
24
exit 1
19
25
fi
20
- if [ ! -n " $redis_root " ] ; then
26
+ if [[ ! -n " $redis_root " ] ] ; then
21
27
echo " you have not input redis root password!"
22
28
exit 1
23
29
fi
24
- if [ ! -n " $mariadb1_root " ] ; then
25
- echo " you have not input mariadb1 root password!"
30
+ if [[ ! -n " $mariadb_root " ] ] ; then
31
+ echo " you have not input mariadb root password!"
26
32
exit 1
27
33
fi
28
- if [ ! -n " $mariadb1_dandelion " ] ; then
29
- echo " you have not input mariadb1 dandelion password!"
34
+ if [[ ! -n " $mariadb_dandelion " ] ] ; then
35
+ echo " you have not input mariadb dandelion password!"
30
36
exit 1
31
37
fi
32
- if [ ! -n " $emqx_root " ] ; then
38
+ if [[ ! -n " $emqx_root " ] ] ; then
33
39
echo " you have not input emqx root password!"
34
40
exit 1
35
41
fi
36
-
37
42
}
38
43
39
44
verify_uninstall () {
40
- containers=(redis emqx mariadb1 dandelion edgeview centerview cerebrum rse-simulator)
45
+ containers=(redis emqx mariadb dandelion edgeview centerview cerebrum rse-simulator)
41
46
for i in ${containers[@]} ; do
42
47
docker stop $i 2> /dev/null || true
43
48
docker rm $i 2> /dev/null || true
44
49
done
45
50
}
46
51
47
- set_env () {
52
+ pre_install () {
48
53
mkdir -pv /tmp/pre
49
54
mkdir -pv /tmp/init
50
55
mkdir -pv /tmp/service
51
56
cp -f deploy/docker-compose-pre.yaml /tmp/pre/docker-compose-pre.yaml
52
57
cp -f deploy/docker-compose-init.yaml /tmp/init/docker-compose-init.yaml
53
58
cp -f deploy/docker-compose-service.yaml /tmp/service/docker-compose-service.yaml
54
- sed -i " s/127.0.0.1/$ip /" /tmp/service/docker-compose-service.yaml
59
+ sed -i " s/127.0.0.1/$external_ip /" /tmp/service/docker-compose-service.yaml
55
60
sed -i " s/redis12345/$redis_root /" /tmp/pre/docker-compose-pre.yaml
56
- sed -i " s/mysql@1234/$mariadb1_root /" /tmp/pre/docker-compose-pre.yaml
57
- sed -i " s/dandelion123/$mariadb1_dandelion /" /tmp/pre/docker-compose-pre.yaml
61
+ sed -i " s/mysql@1234/$mariadb_root /" /tmp/pre/docker-compose-pre.yaml
62
+ sed -i " s/dandelion123/$mariadb_dandelion /" /tmp/pre/docker-compose-pre.yaml
58
63
sed -i " s/abc@1234/$emqx_root /" /tmp/pre/docker-compose-pre.yaml
59
64
sed -i " s/abc@1234/$emqx_root /" /tmp/service/docker-compose-service.yaml
60
- sed -i " s/mysql@1234/$mariadb1_root /" /tmp/service/docker-compose-service.yaml
65
+ sed -i " s/mysql@1234/$mariadb_root /" /tmp/service/docker-compose-service.yaml
61
66
sed -i " s/redis12345/$redis_root /" /tmp/service/docker-compose-service.yaml
62
67
cp -rf deploy/edgeview /etc/
63
68
cp -rf deploy/centerview /etc/
64
69
cp -rf deploy/dandelion /etc/
65
70
sed -i " s/redis12345/$redis_root /" /etc/dandelion/dandelion.conf
66
- sed -i " s/dandelion123/$mariadb1_dandelion /" /etc/dandelion/dandelion.conf
71
+ sed -i " s/dandelion123/$mariadb_dandelion /" /etc/dandelion/dandelion.conf
67
72
sed -i " s/abc@1234/$emqx_root /" /etc/dandelion/dandelion.conf
68
73
rm -rf /var/log/dandelion && mkdir -p /var/log/dandelion
69
74
rm -rf /data && mkdir -pv /data
70
75
cp -rf deploy/mysql /data/
71
- sed -i " s/dandelion123/$mariadb1_dandelion /" /data/mysql/init/init.sql
76
+ sed -i " s/dandelion123/$mariadb_dandelion /" /data/mysql/init/init.sql
72
77
touch /var/log/dandelion/dandelion.log
73
78
}
74
79
75
80
verify_mysql (){
76
81
while true
77
82
do
78
- databases=` docker exec mariadb1 mysql -uroot -p$mariadb1_root -e ' show databases;' 2> /dev/null`
83
+ databases=` docker exec mariadb mysql -uroot -p$mariadb_root -e ' show databases;' 2> /dev/null || true `
79
84
target=" dandelion"
80
- result=$( echo $databases | grep " ${target} " )
85
+ result=$( echo $databases | grep " ${target} " || true )
81
86
if [[ " $result " != " " ]]
82
87
then
83
88
break
@@ -92,7 +97,7 @@ verify_bootstrap(){
92
97
do
93
98
info=` docker ps -a | grep dandelion_bootstrap 2> /dev/null`
94
99
status=" Exited (0)"
95
- result=$( echo $info | grep " ${status} " )
100
+ result=$( echo $info | grep " ${status} " || true )
96
101
if [[ " $result " != " " ]]
97
102
then
98
103
break
@@ -125,8 +130,8 @@ verify_install() {
125
130
repository: https://github.com/open-v2x
126
131
portal: https://openv2x.org
127
132
128
- OpenV2X Edge Portal (Edgeview): http://$ip
129
- OpenV2X Central Portal (Centerview): http://$ip :8080
133
+ OpenV2X Edge Portal (Edgeview): http://$external_ip
134
+ OpenV2X Central Portal (Centerview): http://$external_ip :8080
130
135
131
136
username: admin
132
137
password: dandelion
@@ -135,9 +140,9 @@ verify_install() {
135
140
}
136
141
137
142
{
138
- set_password
143
+ set_env
139
144
verify_input
140
145
verify_uninstall
141
- set_env
146
+ pre_install
142
147
verify_install
143
148
}
0 commit comments