#!/bin/bash
set -x
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
echo ""
echo "........................................"
echo "Installation of application"
echo "........................................"
echo "Today's date: `date`"
echo "........................................"
echo ""
sudo apt-get install -y unzip
sudo apt update
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
sudo apt-get install wget
echo 'Installing Java...'
wget https://deploy-app-servers.s3.us-east-2.amazonaws.com/java/jdk-8u251-linux-x64.tar.gz -P /opt/java/
echo untar JAVA
sudo tar -xf /opt/java/jdk-8u251-linux-x64.tar.gz -C /opt/java/
sudo touch environment
echo "export JAVA_HOME=/opt/java/jdk1.8.0_251" >> environment
sudo mv -f environment /etc/
source /etc/environment
echo Set JAVA HOME
echo Completed installing java
echo Set JAVA HOME
function check_java_home {
if [ -z ${JAVA_HOME} ]
then
echo 'Could not find JAVA_HOME. Please install Java and set JAVA_HOME'
exit
else
echo 'JAVA_HOME found: '$JAVA_HOME
if [ ! -e ${JAVA_HOME} ]
then
echo 'Invalid JAVA_HOME. Make sure your JAVA_HOME path exists'
exit
fi
fi
}
echo 'Installing tomcat server...'
echo 'Checking for JAVA_HOME...'
check_java_home
echo 'Downloading tomcat-9.0...'
if [ ! -f /etc/apache-tomcat-9*tar.gz ]
then
curl -O https://downloads.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
fi
echo 'Finished downloading...'
echo 'Creating install directories...'
sudo mkdir -p '/opt/tomcat/9_0'
if [ -d "/opt/tomcat/9_0" ]
then
echo 'Extracting binaries to install directory...'
sudo tar -xzf apache-tomcat-9*.tar.gz -C "/opt/tomcat/9_0" --strip-components=1
echo 'Creating tomcat user group...'
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
echo 'Setting file permissions...'
cd "/opt/tomcat/9_0"
sudo chgrp -R tomcat "/opt/tomcat/9_0"
sudo chmod -R g+r conf
sudo chmod -R g+x conf
# This should be commented out on a production server
sudo chmod -R g+w conf
sudo chown -R tomcat webapps/ work/ temp/ logs/
echo 'Setting up tomcat service...'
sudo touch tomcat.service
sudo chmod 777 tomcat.service
echo "[Unit]" > tomcat.service
echo "Description=Apache Tomcat Web Application Container" >> tomcat.service
echo "After=network.target" >> tomcat.service
echo "[Service]" >> tomcat.service
echo "Type=forking" >> tomcat.service
echo "Environment=JAVA_HOME=$JAVA_HOME" >> tomcat.service
echo "Environment=CATALINA_PID=/opt/tomcat/9_0/temp/tomcat.pid" >> tomcat.service
echo "Environment=CATALINA_HOME=/opt/tomcat/9_0" >> tomcat.service
echo "Environment=CATALINA_BASE=/opt/tomcat/9_0" >> tomcat.service
echo "Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'" >> tomcat.service
echo "Environment=JAVA_OPTS=-Djava.awt.headless=true-Djava.security.egd=file:/dev/./urandom" >> tomcat.service
echo "ExecStart=/opt/tomcat/9_0/bin/startup.sh" >> tomcat.service
echo "ExecStop=/opt/tomcat/9_0/bin/shutdown.sh" >> tomcat.service
echo "User=tomcat" >> tomcat.service
echo "Group=tomcat" >> tomcat.service
echo "UMask=0007" >> tomcat.service
echo "RestartSec=10" >> tomcat.service
echo "Restart=always" >> tomcat.service
echo "[Install]" >> tomcat.service
echo "WantedBy=multi-user.target" >> tomcat.service
sudo mv tomcat.service /etc/systemd/system/tomcat.service
sudo chmod 755 /etc/systemd/system/tomcat.service
sudo systemctl daemon-reload
sleep 3
sudo sed -i 's/8080/4000/g' /opt/tomcat/9_0/conf/server.xml
echo 'Starting tomcat server....'
sudo systemctl start tomcat
exit
else
echo 'Could not locate installation directory..exciting..'
exit
fi
sudo systemctl start tomcat
echo ""
echo "........................................"
echo "Installation of application"
echo "........................................"
echo "Today's date: `date`"
echo "........................................"
echo ""