-
Notifications
You must be signed in to change notification settings - Fork 1
/
equip_tomcat.sh
125 lines (98 loc) · 3.18 KB
/
equip_tomcat.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
114
115
116
117
118
119
120
121
122
123
124
125
#!/bin/sh
# Equip Apache Tomcat on CentOS
# Author: Brian Lee <[email protected]>, GitHub Username: brian-dlee
# Licence: MIT
# Component: Apache Tomcat
# To run, see https://github.com/brian-dlee/centos-equip
function cleanup {
echo >&2 "! Failed installation, entering cleanup."
rm -f /${TC_ARCHIVE} 2>/dev/null
exit 1
}
trap 'cleanup' ERR
TC_MAJOR_VERSION=7
TC_VERSION=7.0.67
case ${1} in
''|7);;
8)
TC_MAJOR_VERSION=8
TC_VERSION=8.0.30
;;
*)
echo >&2 "Cannot install the desired version of Apache Tomcat (${1})"
exit 2
esac
TC_ARCHIVE=apache-tomcat-${TC_VERSION}.tar.gz
TC_INSTALL=/usr/local/src/apache-tomcat-${TC_VERSION}
persistant_vars=()
echo "Installing Tomcat ${TC_MAJOR_VERSION}."
yum install -y -q curl
echo http://mirror.symnds.com/software/Apache/tomcat/tomcat-${TC_MAJOR_VERSION}/v${TC_VERSION}/bin/${TC_ARCHIVE}
curl --silent -L http://mirror.symnds.com/software/Apache/tomcat/tomcat-${TC_MAJOR_VERSION}/v${TC_VERSION}/bin/${TC_ARCHIVE} -o /${TC_ARCHIVE}
tar -zxf /${TC_ARCHIVE} -C /usr/local/src
rm -f /${TC_ARCHIVE}
if [[ -z ${CATALINA_HOME} ]]; then
catalina_home_var="CATALINA_HOME=/usr/local/share/tomcat"
export ${catalina_home_var}
else
catalina_home_var="CATALINA_HOME=${CATALINA_HOME}"
fi
if [[ -z ${CATALINA_BASE} ]]; then
catalina_base_var="CATALINA_BASE=/usr/local/share/tomcat"
export ${catalina_base_var}
else
catalina_base_var="CATALINA_BASE=${CATALINA_BASE}"
fi
persistant_vars+=(${catalina_home_var} ${catalina_base_var})
ln -s ${TC_INSTALL}/conf /etc/tomcat
ln -s ${TC_INSTALL}/logs /var/log/tomcat
if [[ ! -e ${CATALINA_HOME} ]]; then
ln -s ${TC_INSTALL} ${CATALINA_HOME}
else
ln -s ${TC_INSTALL}/bin ${CATALINA_HOME}/bin
ln -s ${TC_INSTALL}/conf ${CATALINA_HOME}/conf
ln -s ${TC_INSTALL}/lib ${CATALINA_HOME}/lib
ln -s ${TC_INSTALL}/logs ${CATALINA_HOME}/logs
ln -s ${TC_INSTALL}/temp ${CATALINA_HOME}/temp
ln -s ${TC_INSTALL}/webapps ${CATALINA_HOME}/webapps
ln -s ${TC_INSTALL}/work ${CATALINA_HOME}/work
fi
mkdir /var/lib/tomcat
ln -s ${CATALINA_HOME}/temp /var/lib/tomcat/temp
ln -s ${CATALINA_HOME}/webapps /var/lib/tomcat/webapps
ln -s ${CATALINA_HOME}/work /var/lib/tomcat/work
if [[ -z ${JAVA_HOME} ]]; then
java_home_var="JAVA_HOME=/usr/java/default"
export ${java_home_var}
else
java_home_var="JAVA_HOME=${JAVA_HOME}"
fi
persistant_vars+=(${java_home_var})
cat > /etc/systemd/system/tomcat.service <<< "
[Unit]
Description=Tomcat ${TC_MAJOR_VERSION} Service
After=network.target
[Service]
Type=simple
User=tomcat
ExecStart=${CATALINA_HOME}/bin/startup.sh
ExecStop=${CATALINA_HOME}/bin/shutdown.sh
Restart=on-abort
[Install]
WantedBy=multi-user.target
"
groupadd tomcat
useradd -g tomcat -d ${CATALINA_HOME} -r tomcat
chown -R tomcat:tomcat ${TC_INSTALL}
chmod -R u=rwX,g=rwX,o=rX ${CATALINA_HOME}
if [[ ${EQUIP_SELINUX_ENABLED} == 1 ]]; then
chcon -R -u system_u ${CATALINA_HOME}
fi
if [[ ${EQUIP_FIREWALL_ENABLED} == 1 ]]; then
firewall-cmd --add-port=8080/tcp --permanent --zone public
firewall-cmd --quiet --reload
fi
cat /dev/null > /etc/profile.d/tomcat.sh
for var in ${persistant_vars[@]}; do
cat >>/etc/profile.d/tomcat.sh <<< "export ${var}"
done