Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c995fdb

Browse files
committed
Add environment variable check for JDBC_PARAMETER, add check for DataBase.xml file within a mounted /config directory
1 parent d19ae93 commit c995fdb

File tree

1 file changed

+47
-36
lines changed
  • configuration.sh

1 file changed

+47
-36
lines changed

configuration.sh

Lines changed: 47 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#!/bin/bash -e
22

3+
WEBAPPS_DIR="/usr/local/tomcat/webapps"
4+
35
##########################################################
46
####################### Functions ########################
57
echo_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

2022
setup_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.replace
64-
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

7072
setup_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

128139
create_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
131142
cache.type=memcached
132143
EOF
133144
}
134145

135146
create_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
138149
memcached.endpoints[0]=$MEMCACHED_HOST
139150
memcached.timeToLiveSeconds=120
140151
EOF
@@ -152,7 +163,7 @@ tomcatServerXML() {
152163
##########################################################
153164
create_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
156167
cluster.settings.enabled=true
157168
cluster.settings.monitor_frequency=60
158169
cluster.node[0]=$1
@@ -164,12 +175,12 @@ EOF
164175
####################### Executions #######################
165176

166177
echo_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

171182
else
172-
echo_time "/usr/local/tomcat/webapps/ROOT exists, skipping ROOT.war deploy"
183+
echo_time "${WEBAPPS_DIR}/ROOT exists, skipping ROOT.war deploy"
173184
fi
174185

175186
# Check to see if clustering should be enabled by existence of PRIMARY_NODE_NAME

0 commit comments

Comments
(0)