运维 之 一键部署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

相关推荐
乘云数字DATABUFF4 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--6 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森6 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜6 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB7 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode9 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220709 天前
如何搭建本地yum源(上)
运维
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务