-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy_war.sh
More file actions
executable file
·119 lines (99 loc) · 2.81 KB
/
deploy_war.sh
File metadata and controls
executable file
·119 lines (99 loc) · 2.81 KB
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
114
115
116
117
118
119
#!/bin/bash
#----------------------------------------------------------
DATE=$(date +%Y-%m-%d)
WAR=""
SCRIPT_FILE=$(mktemp)
TOMCAT_HOME="/var/lib/tomcat9/webapps"
DOC_ROOT="${TOMCAT_HOME}/ROOT"
IIQ="${DOC_ROOT}/WEB-INF/bin/iiq"
CNT="0"
#----------------------------------------------------------
function usage () {
echo "Usage: $(basename ${0}) -f <path_war_file>"
echo "-f: /home/b.hermit/identityiq-preprod-uat-8.0-20200401_161940.war"
exit 0
}
while getopts "f:" OPT; do
case ${OPT} in
f) WAR="${OPTARG}";;
*) usage;;
esac
done
[ -z "${WAR}" ] && usage
#----------------------------------------------------------
confirmation() {
echo "
War deployment:
----------------------------------------------
WARNING the deployment will be stop the TOMCAT
Would you do deploy?
----------------------------------------------
(y/n) "
while read -s -n1 confirm ; do
case $confirm in
y* | Y*) echo "START Deploy"
break
;;
n* | N*) echo "Deploy CANCELLED"
exit;
;;
*) echo "Bad answer! You must just say YES or NO, not your life"
;;
esac
done
}
check_war() {
ls ${WAR}
[ $? != 0 ] && echo "no such file" && exit 2
}
check_tomcat_stop() {
PID=$(ps faux | fgrep tomcat | egrep -v grep | awk '{ print $2 }')
while [ ${CNT} -lt 60 ]
do
PID=$(ps faux | fgrep tomcat | egrep -v grep | awk '{ print $2 }')
CNT=$(expr ${CNT} + 1)
sleep 1
[ -z "${PID}" ] && break
done
[ ${CNT} == 60 ] && sudo kill -9 ${PID}
NO_PID=$(ps faux | fgrep tomcat | egrep -v grep | awk '{ print $2}')
[ ! -z "${NO_PID}" ] && echo '/!\ TOMCAT ALWAYS RUN /!\' && exit 1
}
check_tomcat_start() {
while [ ${CNT} -lt 60 ]
do
SERVER_UP=$(sudo tail -n1 /var/log/tomcat9/catalina.${DATE}.log | fgrep "Server startup" | awk '{print $6 $7}')
CNT=$(expr ${CNT} + 1)
sleep 1
[ ! -z "${SERVER_UP}" ] && echo "Server is UP" && break
done
[ ${CNT} = 120 ] && echo '/!\ TOMCAT NOT STARTED see catalina.'${DATE}' /!\' && exit 1
}
check_iiq_exe() {
TEST=$(file ${IIQ} | fgrep executable)
if [ -z ${TEST} ]
then
echo "### iiq console is not executable ###" && sudo chmod +x ${IIQ}
fi
}
#----------------------------------------------------------
check_war
confirmation
echo "### STOP TOMCAT ###"
sudo systemctl stop tomcat9
check_tomcat_stop
echo "### CLEAN DOC_ROOT"
sudo rm -fr ${DOC_ROOT}/*
[ $? != 0 ] && echo '/!\ DELETE ERROR /!\' && exit 1
echo "### EXTRACT WAR ###"
sudo unzip -d ${DOC_ROOT} ${WAR}
[ $? != 0 ] && echo '/!\ EXTRACTING ERROR /!\' && exit 1
echo "### IMPORT CONFIG ###"
sudo chmod 754 ${IIQ}
echo "import init.xml" >> ${SCRIPT_FILE}
sudo ${IIQ} console < "${SCRIPT_FILE}"
[ $? != 0 ] && echo '/!\ CONSOLE ERROR /!\' && exit 1
echo "### START TOMCAT ###"
sudo systemctl start tomcat9
check_tomcat_start
sudo rm -f ${SCRIPT_FILE}