11#! /bin/bash -e
22
3+ WEBAPPS_DIR=" /usr/local/tomcat/webapps"
4+
35# #########################################################
46# ###################### Functions ########################
57echo_time () {
@@ -13,17 +15,17 @@ unpack_root_war() {
1315 exit 1
1416 fi
1517 # Unpack the warfile
16- echo_time " Unpacking ROOT.war to /usr/local/tomcat/webapps /ROOT \n"
17- unzip -q /data/ROOT.war -d /usr/local/tomcat/webapps /ROOT
18+ echo_time " Unpacking ROOT.war to ${WEBAPPS_DIR} /ROOT \n"
19+ unzip -q /data/ROOT.war -d ${WEBAPPS_DIR} /ROOT
1820}
1921
2022setup_linux_logging_paths () {
2123 # Replace Mac logging paths with linux based paths
2224 echo_time " Set logging file paths to use linux file paths"
2325 CONFIG_FILES=(
24- " /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j.properties"
25- " /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml"
26- " /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/ESAPI.properties"
26+ " ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j.properties"
27+ " ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml"
28+ " ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/ESAPI.properties"
2729 )
2830 for config in " ${CONFIG_FILES[@]} " ; do
2931 if test -f " ${config} " ; then
@@ -38,54 +40,63 @@ setup_stdout_logging() {
3840 # Add stdout output for Jamf specific log files while maintaining logging to the files
3941 echo_time " STDOUT_LOGGING is true, add stdout logging for all logfiles"
4042 # Check whether log4j.properties (<= Jamf Pro 10.30.3) or log4j2.xml (>= Jamf Pro 10.31.0) exists
41- FILE=/usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j.properties
43+ FILE=${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j.properties
4244 if test -f " $FILE " ; then
4345 echo_time " Found log4j.properties, enable logging to stdout"
44- if grep -Fxq " log4j.rootLogger=INFO,JAMF,stdout" /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j.properties; then
46+ if grep -Fxq " log4j.rootLogger=INFO,JAMF,stdout" ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j.properties; then
4547 echo_time " stdout logging appears to be present in log4j.properties file, skipping"
4648 else
4749 echo_time " Add stdout logging to log4j.properties file"
4850 sed -e ' /log4j.rootLogger/ {r /log4j.stdout.replace
49- d}' -i /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j.properties
51+ d}' -i ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j.properties
5052 fi
5153 else
5254 echo_time " Found log4j2.xml, enable logging to stdout"
53- if grep -Fxq ' ' /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml; then
55+ if grep -Fxq ' ' ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml; then
5456 echo_time " stdout logging appears to be present in log4j2.xml file, skipping"
5557 else
5658 echo_time " Add stdout logging to log4j2.xml file"
5759 sed -e
' // {r /log4j2.stdout.appenders.replace 58- d}' -i /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml
60+ d}' -i ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml
5961 sed -e ' // {r /log4j2.stdout.loggers.root.replace
60- d}' -i /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml
62+ d}' -i ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml
6163 sed -e ' // {r /log4j2.stdout.loggers.analytics.replace
62- d}' -i /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml
64+ d}' -i ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml
6365 sed -e
' / / {r /log4j2.stdout.loggers.vpp.replace64- d}' -i /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/log4j2.xml
66+ d}' -i ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/log4j2.xml
6567 fi
6668 fi
6769 fi
6870}
6971
7072setup_remote_database () {
71- DATABASE_HOST=${DATABASE_HOST:- localhost}
72- DATABASE_NAME=${DATABASE_NAME:- jamfsoftware}
73- DATABASE_USERNAME=${DATABASE_USERNAME:- jamfsoftware}
74- DATABASE_PASSWORD=${DATABASE_PASSWORD:- jamfsw03}
75- DATABASE_PORT=${DATABASE_PORT:- 3306}
76-
77- echo_time " \n\nDatabase connection information: \n DATABASE_HOST: ${DATABASE_HOST} \n DATABASE_NAME: ${DATABASE_NAME} \n DATABASE_USERNAME: ${DATABASE_USERNAME} \n\n"
78-
79- echo_time " Setting up the DataBase.xml file to use remote MySQL database"
80- if [ ! -f " /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml" ]; then
81- echo_time " FATAL ERROR: DataBase.xml not where expected, cannot continue"
82- exit 1
73+ if [[ -f " /config/DataBase.xml" ]]; then
74+ echo_time " Database xml config override found, ignoring environment variables"
75+ cp /config/DataBase.xml ${WEBAPPS_DIR} /ROOT/WEB-INF/xml/DataBase.xml
8376 else
84- sed -i s#\< ServerName.* # \$DATABASE_HOST\ # /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml
85- sed -i s#\< DataBaseName.* # \$DATABASE_NAME\ # /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml
86- sed -i s#\< DataBaseUser.* # \$DATABASE_USERNAME\ # /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml
87- sed -i s#\< DataBasePassword.* # \$DATABASE_PASSWORD\ # /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml
88- sed -i s#\< ServerPort.* # \$DATABASE_PORT\ # /usr/local/tomcat/webapps/ROOT/WEB-INF/xml/DataBase.xml
77+ DATABASE_HOST=${DATABASE_HOST:- localhost}
78+ DATABASE_NAME=${DATABASE_NAME:- jamfsoftware}
79+ DATABASE_USERNAME=${DATABASE_USERNAME:- jamfsoftware}
80+ DATABASE_PASSWORD=${DATABASE_PASSWORD:- jamfsw03}
81+ DATABASE_PORT=${DATABASE_PORT:- 3306}
82+
83+ echo_time " \n\nDatabase connection information: \n DATABASE_HOST: ${DATABASE_HOST} \n DATABASE_NAME: ${DATABASE_NAME} \n DATABASE_USERNAME: ${DATABASE_USERNAME} \n\n"
84+
85+ echo_time " Setting up the DataBase.xml file to use remote MySQL database"
86+ if [ ! -f " ${WEBAPPS_DIR} /ROOT/WEB-INF/xml/DataBase.xml" ]; then
87+ echo_time " FATAL ERROR: DataBase.xml not where expected, cannot continue"
88+ exit 1
89+ else
90+ sed -i s#\< ServerName.* # \$DATABASE_HOST\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
91+ sed -i s#\< DataBaseName.* # \$DATABASE_NAME\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
92+ sed -i s#\< DataBaseUser.* # \$DATABASE_USERNAME\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
93+ sed -i s#\< DataBasePassword.* # \$DATABASE_PASSWORD\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
94+ sed -i s#\< ServerPort.* # \$DATABASE_PORT\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
95+ if [[ -n " ${JDBC_PARAMETERS} " ]]; then
96+ echo_time " JDBC environment variable is set, replacing JDBC database config"
97+ sed -i s#\< jdbcParameters.* # \${JDBC_PARAMETERS}\ # ${WEBAPPS_DIR}/ROOT/WEB-INF/xml/DataBase.xml
98+ fi
99+ fi
89100 fi
90101}
91102
@@ -127,14 +138,14 @@ setup_java_opts() {
127138
128139create_cache_properties (){
129140 echo_time " Setting up the cache.properties to be memcached"
130- cat << -EOF > /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/dal/cache.properties
141+ cat << -EOF > ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/dal/cache.properties
131142cache.type=memcached
132143EOF
133144}
134145
135146create_memcached_properties (){
136147 echo_time " Setting up the memcached.properties"
137- cat << -EOF > /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/dal/memcached.properties
148+ cat << -EOF > ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/dal/memcached.properties
138149memcached.endpoints[0]=$MEMCACHED_HOST
139150memcached.timeToLiveSeconds=120
140151EOF
@@ -152,7 +163,7 @@ tomcatServerXML() {
152163# #########################################################
153164create_cluster_properties () {
154165 echo_time " Creating the clustering properties file"
155- cat << - EOF > /usr/local/tomcat/webapps /ROOT/WEB-INF/classes/clustering.properties
166+ cat << - EOF > ${WEBAPPS_DIR} /ROOT/WEB-INF/classes/clustering.properties
156167cluster.settings.enabled=true
157168cluster.settings.monitor_frequency=60
158169cluster.node[0]=$1
@@ -164,12 +175,12 @@ EOF
164175# ###################### Executions #######################
165176
166177echo_time " Check if Tomcat ROOT directory exists, will NOT overwrite if exists"
167- if [ ! -d /usr/local/tomcat/webapps /ROOT ]; then
168- echo_time " /usr/local/tomcat/webapps /ROOT directory does not exist, attempt to deploy ROOT.war from /data"
178+ if [ ! -d ${WEBAPPS_DIR} /ROOT ]; then
179+ echo_time " ${WEBAPPS_DIR} /ROOT directory does not exist, attempt to deploy ROOT.war from /data"
169180 unpack_root_war
170181
171182else
172- echo_time " /usr/local/tomcat/webapps /ROOT exists, skipping ROOT.war deploy"
183+ echo_time " ${WEBAPPS_DIR} /ROOT exists, skipping ROOT.war deploy"
173184fi
174185
175186# Check to see if clustering should be enabled by existence of PRIMARY_NODE_NAME
0 commit comments