运维 之 一键部署Tomcat

简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

Tomcat最新版本为10.0.23。

准备文件

  • apache-tomcat-9.0.62.tar.gz
  • jdk-8u361-linux-x64.tar.gz

Script

#!/bin/bash
#
#********************************************************************
#Author:        Linux技术宅
#Date:          2024-03-20
#FileName:install_tomcat_for_centos.sh
#URL:           linuxjsz.top
#Copyright (C): 2023 All rights reserved
#********************************************************************
. /etc/init.d/functions
DIR=`pwd`
JDK_FILE="jdk-8u361-linux-x64.tar.gz"
TOMCAT_FILE="apache-tomcat-9.0.62.tar.gz"
JDK_DIR="/usr/local"
TOMCAT_DIR="/usr/local"


install_jdk(){
if !  [  -f "$DIR/$JDK_FILE" ];then
    action "$JDK_FILE 文件不存在" false 
    exit; 
elif [ -d $JDK_DIR/jdk ];then
        action "JDK 已经安装" false
    exit
else 
        [ -d "$JDK_DIR" ] || mkdir -pv $JDK_DIR
fi
tar xvf $DIR/$JDK_FILE  -C $JDK_DIR
cd  $JDK_DIR && ln -s jdk1.8.* jdk 


cat >  /etc/profile.d/jdk.sh <<EOF
export JAVA_HOME=$JDK_DIR/jdk
export JRE_HOME=\$JAVA_HOME/jre
export CLASSPATH=\$JAVA_HOME/lib/:\$JRE_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF
.  /etc/profile.d/jdk.sh
java -version && action "JDK 安装完成" || { action "JDK 安装失败" false ; exit; }


}


install_tomcat(){
if ! [ -f "$DIR/$TOMCAT_FILE" ];then
        action "$TOMCAT_FILE 文件不存在" false 
    exit; 
elif [ -d $TOMCAT_DIR/tomcat ];then
        action "TOMCAT 已经安装" false
    exit
else 
    [ -d "$TOMCAT_DIR" ] || mkdir -pv $TOMCAT_DIR
fi
tar xf $DIR/$TOMCAT_FILE -C $TOMCAT_DIR
cd  $TOMCAT_DIR && ln -s apache-tomcat-*/  tomcat
echo "PATH=$TOMCAT_DIR/tomcat/bin:"'$PATH' > /etc/profile.d/tomcat.sh
id tomcat &> /dev/null || useradd -r -s /sbin/nologin tomcat


cat > $TOMCAT_DIR/tomcat/conf/tomcat.conf <<EOF
JAVA_HOME=$JDK_DIR/jdk
JRE_HOME=\$JAVA_HOME/jre
EOF


chown -R tomcat.tomcat $TOMCAT_DIR/tomcat/


cat > /lib/systemd/system/tomcat.service  <<EOF
[Unit]
Description=Tomcat
#After=syslog.target network.target remote-fs.target nss-lookup.target
After=syslog.target network.target 


[Service]
Type=forking
EnvironmentFile=$TOMCAT_DIR/tomcat/conf/tomcat.conf
ExecStart=$TOMCAT_DIR/tomcat/bin/startup.sh
ExecStop=$TOMCAT_DIR/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat


[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now tomcat.service
systemctl is-active tomcat.service &> /dev/null &&  action "TOMCAT 安装完成" || { action "TOMCAT 安装失败" false ; exit; }
}


install_jdk


install_tomcat

脚本说明

此Bash 脚本用于在 CentOS 系统上安装 JDK 和 Apache Tomcat。脚本的主要功能如下:

  • 定义变量
    • DIR:当前工作目录。
    • JDK_FILETOMCAT_FILE:要安装的 JDK 和 Tomcat 的文件名。
    • JDK_DIRTOMCAT_DIR:JDK 和 Tomcat 的安装目录。
  • install_jdk****函数
    • 检查 $DIR 目录下是否存在 JDK 文件。
    • 如果不存在,则显示错误信息并退出。
    • 如果已经存在 JDK 目录,则显示 JDK 已安装的消息并退出。
    • 如果不存在 JDK 目录,则创建目录并解压 JDK 文件到该目录。
    • 创建一个指向具体 JDK 版本的符号链接 jdk
    • /etc/profile.d/jdk.sh 添加环境变量,使系统可以识别 JDK。
    • 刷新环境变量并检查 JDK 是否正确安装。
  • install_tomcat****函数
    • 检查 $DIR 目录下是否存在 Tomcat 文件。
    • 如果不存在,则显示错误信息并退出。
    • 如果已经存在 Tomcat 目录,则显示 Tomcat 已安装的消息并退出。
    • 如果不存在 Tomcat 目录,则创建目录并解压 Tomcat 文件到该目录。
    • 创建一个指向具体 Tomcat 版本的符号链接 tomcat
    • 添加 Tomcat 的 bin 目录到 PATH 环境变量。
    • 创建一个名为 tomcat 的系统用户(如果尚未存在)。
    • 向 Tomcat 的配置文件添加 JDK 的路径。
    • 更改 Tomcat 目录的所有权为 tomcat 用户和组。
    • 创建一个 systemd 服务单元文件 tomcat.service,以便通过 systemd 管理 Tomcat。

最后调用 install_jdkinstall_tomcat 函数来分别安装 JDK 和 Tomcat。目的是自动化在 CentOS 系统上安装和配置 JDK 和 Tomcat 的过程,减少了手动安装的复杂性和错误率。

脚本说明

1、上传下载好的安装包。

2、编写执行脚本,执行安装。

分享、在看与点赞
只要你点,我们就是胖友

来自: 运维 之 一键部署Tomcathttps://mp.weixin.qq.com/s?__biz=Mzk0NTQ3OTk3MQ==&mid=2247487494&idx=1&sn=dc0c8fc1401c9dc7472ce007bcdf2b8e&chksm=c315984af462115c224f48265296e720560a71f82c553bccc9f8affcd7b775f54270265a2a7f&token=355315523&lang=zh_CN#rd

相关推荐
想学习java初学者19 分钟前
Docker compose部署elasticsearch(单机版)
运维·docker·容器
人类群星闪耀时1 小时前
未来运维的发展趋势:运维领域的新技术与趋势
运维
落非1 小时前
NFS存储基础操作
运维
Vanish_ran1 小时前
gitlab与jenkins
运维·gitlab·jenkins
大风吹PP凉1 小时前
38配置管理工具(如Ansible、Puppet、Chef)
linux·运维·服务器·ansible·puppet
康熙38bdc2 小时前
Linux 进程间通信——共享内存
linux·运维·服务器
微刻时光2 小时前
Docker部署Nginx
运维·nginx·docker·容器·经验
小安运维日记2 小时前
CKA认证 | Day3 K8s管理应用生命周期(上)
运维·云原生·容器·kubernetes·云计算·k8s
小han的日常3 小时前
接口自动化环境搭建
运维·自动化
小扳3 小时前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器