tomcat部署

部署tomcat

安装jdk环境

//安装jdk环境
建议将yum源配置为阿里源,安装配置更快

[root@192 ~]# yum install java-17-openjdk* -y

下载tomcat软件包

前往tomcat官网

Apache Tomcat® - Welcome!https://tomcat.apache.org/

点击archives,选择下载版本

 安装部署tomcat

//下载tomcat软件包
[root@192 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
[root@192 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz  zabbix-5.0.25.tar.gz
[root@192 ~]# tar -xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@192 ~]# cd /usr/local/
[root@192 local]# mv apache-tomcat-9.0.65/ tomcat
[root@192 local]# cd tomcat/
[root@192 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work


//写一个hello world的java页面
[root@192 ~]# mkdir /usr/local/tomcat/webapps/test

[root@192 ~]# cd /usr/local/tomcat/webapps/test/
[root@192 test]# vim index.jsp
[root@192 test]# cat index.jsp
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hellow World");
        %>
</body>
</html>



//设置环境变量
[root@192 ~]# echo 'export PATH=/usr/local/tomcat/bin/:$PATH' > /etc/profile.d/tomcat.sh
[root@192 ~]# source /etc/profile.d/tomcat.sh


//启动tomcat
[root@192 ~]# catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@192 ~]# ss -antl    //出现8080端口和8005端口即为成功开启
State    Recv-Q   Send-Q          Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128                   0.0.0.0:22              0.0.0.0:*                
LISTEN   0        1          [::ffff:127.0.0.1]:8005                  *:*                
LISTEN   0        100                         *:8080                  *:*                
LISTEN   0        128                      [::]:22                 [::]:*                

//关闭防火墙和selinux
[root@192 ~]# systemctl disable --now firewalld.service
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@192 ~]# setenforce 0
[root@192 ~]# vim /etc/selinux/config
SELINUX=disabled

测试网页访问

访问测试目录

 

 开启AJP协议

//解注释以下内容,该文件注释非#而是<!--- --->
[root@192 ~]# vim /usr/local/tomcat/conf/server.xml
<!-- Define an AJP 1.3 Connector on port 8009 -->
    
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
    

    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone

//查看当前端口号与进程号
[root@192 ~]# ss -antl
State    Recv-Q   Send-Q          Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128                   0.0.0.0:22              0.0.0.0:*                
LISTEN   0        1          [::ffff:127.0.0.1]:8005                  *:*                
LISTEN   0        100                         *:8080                  *:*                
LISTEN   0        128                      [::]:22                 [::]:*                
[root@192 ~]# ps -ef | grep tomcat
root      181087       1  0 01:34 pts/2    00:00:07 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root      225472   35173  0 01:56 pts/2    00:00:00 grep --color=auto tomcat

//重启服务使文件生效
[root@192 ~]# catalina.sh stop
[root@192 ~]# catalina.sh start
[root@192 ~]# ss -antl    //再次查看端口号即可看到8009端口出现,即AJP服务协议已使用
State    Recv-Q   Send-Q          Local Address:Port       Peer Address:Port   Process   
LISTEN   0        128                   0.0.0.0:22              0.0.0.0:*                
LISTEN   0        1          [::ffff:127.0.0.1]:8005                  *:*                
LISTEN   0        100                     [::1]:8009               [::]:*                
LISTEN   0        100                         *:8080                  *:*                
LISTEN   0        128                      [::]:22                 [::]:*

查看服务器状态

问题解决

server status无法打开

 

解决方法

//在此文件中加上下面两行
[root@192 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>   //用户密码可自行设置

//重启服务使配置生效
[root@192 ~]# catalina.sh stop
[root@192 ~]# catalina.sh start

//配置context.xml文件使主机ip可以访问
[root@192 ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.80\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />     //填写当前主机网段,\d+表示取任意字符至少一位

 刷新页面

用户密码为刚刚设置的

 点击应用程序列表

可以看到之前创建的test正在运行

此页面可以控制运行项目

 停止test项目,再访问test页面

再次访问测试页面

卸载test项目,再去tomcat工作目录中查看,发现test目录已被删除

[root@192 ~]# cd /usr/local/tomcat/webapps
[root@192 webapps]# ls
docs  examples  host-manager  manager  ROOT

查看主机管理器

问题解决

host manager访问失败

 解决方法

//在文件中添加下面两行
[root@192 ~]# vim /usr/local/tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/>   
<user username="tomcat" password="tomcat" roles="admin-gui"/>

//重启服务使配置生效
[root@192 ~]# catalina.sh stop
[root@192 ~]# catalina.sh start

//放行ip访问
[root@192 ~]# vim  /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.80\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

 刷新页面

输入刚才配置的用户名和密码即可登录

Jenkins部署

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle

Jenkins

前往上方官网下载安装包

 部署Jenkins

[root@192 ~]# cd /usr/local/tomcat/
[root@192 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@192 tomcat]# cd webapps/
[root@192 webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@192 webapps]# mv * /opt/     //将webapps目录中文件移到别处
[root@192 webapps]# ls    
[root@192 webapps]# ls    //将Jenkins软件包导入到目录中
jenkins.war
[root@192 webapps]# catalina.sh stop     //重启tomcat服务

[root@192 webapps]# catalina.sh start

[root@192 webapps]# ls    
jenkins  jenkins.war     //自动解压形成了Jenkins目录

使用浏览器访问

密码

[root@192 webapps]# cat /root/.jenkins/secrets/initialAdminPassword
ad5b0c70394245e8ab81b16b7ce9b086

 等待自动安装

 

可自行设置

 登入Jenkins系统

 执行者默认两个

 

 

打包工具

Maven介绍

1.什么是Maven

Maven是一个跨平台的项目管理工具。作为Apache组织的一个颇为成功的开源项目,其主要服务于基于Java平台的项目创建,依赖管理和项目信息管理。maven是Apache的顶级项目,解释为“专家,内行”,它是一个项目管理的工具,maven自身是纯java开发的,可以使用maven对java项目进行构建、依赖管理。

2. Maven的作用

依赖管理

依赖指的就是是 我们项目中需要使用的第三方Jar包, 一个大一点的工程往往需要几十上百个Jar包,按照我们之前的方式,每使用一种Jar,就需要导入到工程中,还要解决各种Jar冲突的问题.

Maven可以对Jar包进行统一的管理,包括快速引入Jar包,以及对使用的 Jar包进行统一的版本控制

一键构建项目

之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码, resources存放配置文件,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦

Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目

ant介绍

1.什么是ant

ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant

2.ant的优点

ant 是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点: 

1、跨平台性:Ant是纯Java语言编写的,所以具有很好的跨平台性。 

2、操作简单:Ant是由一个内置任务和可选任务组成的,用ant任务就像是在dos中写命令行一样。Ant运行时需要一个XML文件(构建文件)。 Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。 

3、维护简单、可读性好、集成简单:由于Ant构建文件 时XML格式的文件,所以很容易维护和书写,而且结构很清晰。Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去

gradle

1.Gradle是一种以Groovy语言为基础的自动化构建工具

2.自动化构建本质上也是一种程序,我们开始编译时就启动这个程序,然后读取我们在 gradle 文件中配置的参数来实例化各个类,然后按照顺序依次执行对应的任务即可完成整个构建任务

使用Jenkins部署项目

要求:通过服务机部署tomcat与Jenkins,将项目打包并且传输到服务机并且可以通过浏览器访问项目网页

实验环境:

服务机:ip——192.168.80.130      安装tomcat+jenkins

客户机:ip——192.168.80.128      安装tomcat

服务机与客户机操作

//下载命令行接口
[root@192 ~]# wget http://192.168.80.130:8080/jenkins/jnlpJars/jenkins-cli.jar
--2022-08-19 03:35:35--  http://192.168.80.130:8080/jenkins/jnlpJars/jenkins-cli.jar
正在连接 192.168.80.130:8080... 已连接。
已发出 HTTP 请求,正在等待回应... 200 
长度:3571391 (3.4M) [application/java-archive]
正在保存至: “jenkins-cli.jar”

jenkins-cli.jar        100%[=========================>]   3.41M  --.-KB/s  用时 0.03s   

2022-08-19 03:35:35 (136 MB/s) - 已保存 “jenkins-cli.jar” [3571391/3571391])

//使用改包来执行命令
[root@192 ~]# java -jar jenkins-cli.jar -s http://192.168.80.130:8080/jenkins/  help

//安装git maven
[root@192 ~]# yum -y install git maven

//与客户机配置免密登录
[root@192 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rwfc9IL1zl5TyVAQiwSovwjYd+ywuQaP+X65IE5SflU root@192.168.80.130
The key's randomart image is:
+---[RSA 3072]----+
|        .... oo. |
|       .  . . o  |
|      .  E . o   |
|     .  . o   o .|
|  o.  ooS= o   o.|
| .o+ o.++.o o  . |
| . +BoB o..+  o  |
|  +oo*.= .. o. . |
|   .++o.o. ..    |
+----[SHA256]-----+
[root@192 ~]# ssh-copy-id root@192.168.80.128
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.80.128 (192.168.80.128)' can't be established.
ECDSA key fingerprint is SHA256:R4aHwVVI89IuGDm890yoCVuytjxAm72mBfy5StmrqmE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.80.128's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.80.128'"
and check to make sure that only the key(s) you wanted were added.


//拉取项目
[root@192 ~]# git clone https://github.com/chendao2015/tomcat-java-demo.git
正克隆到 'tomcat-java-demo'...
remote: Enumerating objects: 549, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 549 (delta 0), reused 2 (delta 0), pack-reused 546
接收对象中: 100% (549/549), 5.08 MiB | 845.00 KiB/s, 完成.
处理 delta 中: 100% (213/213), 完成.
[root@192 ~]# ls
anaconda-ks.cfg              jenkins-cli.jar   zabbix-5.0.25.tar.gz
apache-tomcat-9.0.65.tar.gz  tomcat-java-demo

//进行打包
[root@192 ~]# cd tomcat-java-demo/
[root@192 tomcat-java-demo]# ls
db  Dockerfile  LICENSE  pom.xml  README.md  src
[root@192 tomcat-java-demo]# mvn clean package -Dmaven.test.skip=true

//打包完成后即可看到target目录,进入目录
[root@192 tomcat-java-demo]# ls
db  Dockerfile  LICENSE  pom.xml  README.md  src  target
[root@192 tomcat-java-demo]# cd target/
[root@192 target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status


//使用scp命令将项目传到客户机/usr/local/tomcat/webapps 目录下
[root@192 target]# scp ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.80.128:/usr/local/tomcat/webapps/
ly-simple-tomcat-0.0.1-SNAPSHOT.war                    100%   17MB  57.3MB/s   00:00


客户机查看
[root@192 ~]# cd /usr/local/tomcat/webapps/
[root@192 webapps]# ls
docs      host-manager                     ly-simple-tomcat-0.0.1-SNAPSHOT.war  ROOT
examples  ly-simple-tomcat-0.0.1-SNAPSHOT  manager                              test

客户机ip访问

这时打开服务机部署的Jenkins

创建一个项目

拉取代码

 生成流水线脚本 

编修流水线脚本

pipeline {
    agent any 
    stages {
        stage("pull code"){
            steps {
                git 'https://github.com/chendao2015/tomcat-java-demo.git' ## 注意:如果是私有仓库还要添加账号跟密码
            }
        }    
        stage("make pkg"){
            steps {
                sh """
                    mvn clean package -Dmaven.test.skip=true
                """
            }
        }  
        stage(publish){
            steps{
                sh """
                    scp target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.80.128:/usr/local/tomcat/webapps/
                    ssh root@192.168.80.128 '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'
                """
            }
        }
    }
}

先应用后保存

进行测试,点击开始构建

 看到显示绿色则表示成功

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值