#!/bin/bash

# 部署Java环境
java_install(){
    apt update && apt install openjdk-11-jdk -y
}

# 配置Java环境变量
java_config(){
    cat > /etc/profile.d/java.sh << 'EOF'
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JAVA_BIN=$JAVA_HOME/bin
export PATH=$JAVA_BIN:$PATH
EOF
    source /etc/profile.d/java.sh
}

# 下载Tomcat
get_tomcat(){
    [ -d /data/softs ] || mkdir -p /data/softs
    if [ ! -f /data/softs/apache-tomcat-9.0.99.tar.gz ]; then
        cd /data/softs
        wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.99/bin/apache-tomcat-9.0.99.tar.gz
    fi
}

# 解压Tomcat并配置测试页面
untar_tomcat(){
    [ -d /data/server/tomcat ] && rm -rf /data/server/tomcat* || mkdir -p /data/server
    tar xf /data/softs/apache-tomcat-9.0.99.tar.gz -C /data/server/
    ln -sv /data/server/apache-tomcat-9.0.99 /data/server/tomcat
    echo "Tomcat jsp page from $(hostname)<br />" > /data/server/tomcat/webapps/ROOT/test.jsp
    echo 'SessionID = <span style="color:blue"><%=session.getId() %></span>' >> /data/server/tomcat/webapps/ROOT/test.jsp
    sed -i "s/localhost/sswang.magedu.com/" /data/server/tomcat/conf/server.xml
}

# 配置Tomcat环境变量
tomcat_config(){
    cat > /etc/profile.d/tomcat.sh << 'EOF'
export CATALINA_BASE=/data/server/tomcat
export CATALINA_HOME=/data/server/tomcat
export CATALINA_TMPDIR=$CATALINA_HOME/temp
export CLASSPATH=$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar
export PATH=$CATALINA_HOME/bin:$PATH
EOF
    source /etc/profile.d/tomcat.sh
}

# 创建Tomcat用户
tomcat_user(){
    userdel -r tomcat >/dev/null 2>&1
    useradd -r -s /sbin/nologin tomcat
    chown -R tomcat:tomcat /data/server/tomcat/*
}

# 配置Tomcat服务
tomcat_service(){
    cat > /lib/systemd/system/tomcat.service << 'EOF'
[Unit]
Description=Tomcat
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/data/server/tomcat/bin/startup.sh
ExecStop=/data/server/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target
EOF
    systemctl daemon-reload
    systemctl enable --now tomcat
}

# 主函数
main(){
    java_install
    java_config
    get_tomcat
    untar_tomcat
    tomcat_config
    tomcat_user
    tomcat_service
}

main
