tomcat部署

部署tomcat

安装jdk环境

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

下载tomcat软件包
tomcat官网
在这里下载
在这里插入图片描述

# 下载tomcat软件包
[root@localhost ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz

#解压
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz
[root@localhost ~]# tar -xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.65/ tomcat
[root@localhost local]# cd tomcat/
[root@localhost tomcat]# ll
总用量 128
drwxr-x---. 2 root root  4096 817 14:21 bin
-rw-r-----. 1 root root 19992 714 20:28 BUILDING.txt
drwx------. 2 root root   238 714 20:28 conf    
-rw-r-----. 1 root root  6210 714 20:28 CONTRIBUTING.md
drwxr-x---. 2 root root  4096 817 14:21 lib
-rw-r-----. 1 root root 57092 714 20:28 LICENSE
drwxr-x---. 2 root root     6 714 20:28 logs
-rw-r-----. 1 root root  2333 714 20:28 NOTICE
-rw-r-----. 1 root root  3398 714 20:28 README.md
-rw-r-----. 1 root root  6901 714 20:28 RELEASE-NOTES
-rw-r-----. 1 root root 16505 714 20:28 RUNNING.txt
drwxr-x---. 2 root root    30 817 14:21 temp   //临时文件
drwxr-x---. 7 root root    81 714 20:28 webapps   //存放应用 软件 网页
drwxr-x---. 2 root root     6 714 20:28 work


# 写一个hello world的java页面
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test   //创建test目录用于存放测试网页
[root@localhost ~]# cd /usr/local/tomcat/webapps/test/
[root@localhost test]# vi index.jsp
[root@localhost test]# cat index.jsp 
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("Hellow World");
        %>
</body>
</html>


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

[root@localhost ~]# 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@localhost ~]# 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       100                         *:8080                *:*              
LISTEN  0       128                      [::]:22               [::]:*              
LISTEN  0       1          [::ffff:127.0.0.1]:8005                *:*      
        
[root@localhost ~]# ps -ef|grep tomcat   
root       77045       1  1 14:49 pts/4    00:00:04 /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@localhost ~]# systemctl disable --now firewalld.service    //关闭防火墙
[root@localhost ~]# setenforce 0   //关闭selinux

网页访问
在这里插入图片描述

加上测试目录
在这里插入图片描述

[root@localhost tomcat]# cd logs/
[root@localhost logs]# ll
总用量 24
-rw-r-----. 1 root root 6935 817 15:01 catalina.2022-08-17.log
-rw-r-----. 1 root root 7206 817 15:01 catalina.out   //tomcat 日志
-rw-r-----. 1 root root    0 817 14:49 host-manager.2022-08-17.log
-rw-r-----. 1 root root  414 817 14:49 localhost.2022-08-17.log
-rw-r-----. 1 root root 1368 817 15:04 localhost_access_log.2022-08-17.txt
-rw-r-----. 1 root root    0 817 14:49 manager.2022-08-17.log

开启8009端口
可以让apache和tomcat的使用AJP协议 使效率更高

[root@localhost tomcat]# cd conf/  
[root@localhost conf]# ls
Catalina             jaspic-providers.xml  tomcat-users.xml
catalina.policy      jaspic-providers.xsd  tomcat-users.xsd
catalina.properties  logging.properties    web.xml
context.xml          server.xml
[root@localhost conf]# vim server.xml  //取消下面的注释  此文件可以修改默认端口号
#此文件的注释为<!---  --->
<Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />

查看端口号和进程

[root@localhost ~]# 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       100                       *:8080              *:*             
LISTEN  0       128                    [::]:22             [::]:*             
LISTEN  0       1        [::ffff:127.0.0.1]:8005              *:*      

[root@localhost ~]# ps -ef | grep tomcat
root       77045       1  0 14:49 pts/4    00:00:10 /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      208221    8962  0 15:17 pts/4    00:00:00 grep --color=auto tomcat

重启服务让其生效

[root@localhost ~]# catalina.sh stop
[root@localhost ~]# catalina.sh start

[root@localhost ~]# ss -antl  //8009端口号开启
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       100                       *:8080              *:*             
LISTEN  0       128                    [::]:22             [::]:*             
LISTEN  0       1        [::ffff:127.0.0.1]:8005              *:*             
LISTEN  0       100                   [::1]:8009           [::]:*             

解决网页server status无法打开
在这里插入图片描述

解决办法
在这里插入图片描述

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


[root@localhost ~]# catalina.sh stop  //重启服务让其生效
[root@localhost ~]# catalina.sh start

#配置context.xml文件
[root@localhost ~]# cd /usr/local/tomcat/webapps/manager/META-INF/
[root@localhost META-INF]# ls
context.xml
[root@localhost META-INF]# vim context.xml 
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.220\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />   //添加192.168.220.\d+
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Intege

刷新网页
在这里插入图片描述
在这里插入图片描述

应用程序列表
可以看到test正在运行的
此页面可以控制项目
在这里插入图片描述

停止test
在这里插入图片描述
访问网页
在这里插入图片描述

卸载
在这里插入图片描述

点击卸载后 到tomcat的工作目录内查看
test目录已经被删除了

[root@localhost webapps]# pwd
/usr/local/tomcat/webapps
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT

解决host manager访问失败
在这里插入图片描述
在这里插入图片描述

[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat-users.xml 
<role rolename="admin-gui"/>   //添加这两行
<user username="tomcat" password="tomcat" roles="admin-gui"/>   //此行

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

[root@localhost ~]# catalina.sh stop  //重启服务让其生效
[root@localhost ~]# catalina.sh start
#放行
[root@localhost ~]# vim  /usr/local/tomcat/webapps/host-manager/META-INF/context.xml 
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="192\.168\.220\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />  //放行ip
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Intege

刷新页面
在这里插入图片描述

在这里插入图片描述

通过tomcat发布jenkins

jenkins官网

Jenkins概念

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

Jenkins特性:

开源的java语言开发持续集成工具,支持CI,CD;

易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;

消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;

分布式构建:支持Jenkins能够让多台计算机一起构建/测试;

文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等; 

丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

在这里插入图片描述
点击下载稳定版
在这里插入图片描述

部署jenkins

[root@localhost webapps]# mv * /opt/   //清理webapps目录内的
[root@localhost webapps]# ls  //将jenkins的包导入到webapps目录内
jenkins.war

[root@localhost webapps]# catalina.sh stop  //重启
[root@localhost webapps]# catalina.sh start

[root@localhost ~]# cd /usr/local/tomcat/webapps/   
[root@localhost webapps]# ls
jenkins  jenkins.war    //重启后生成了jenkins目录

浏览器访问
需要等待一段时间

在这里插入图片描述

在这里插入图片描述

密码位置

[root@localhost ~]# cat /root/.jenkins/secrets/initialAdminPassword
9297b1f992184517a4aff1192f3ca531

在这里插入图片描述

等待自动安装
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

新建用户
在这里插入图片描述

在这里插入图片描述

使用jenkins部署项目

需要安装ip
tomcat+jenkins192.168.220.10
tomcat192.168.220.30

需求:通过192.168.220.10主机 部署jenkins 将项目打包传输的192.168.220.30主机 并可以通过浏览器访问到项目网页

创建新项目
在这里插入图片描述
输入任务名和任务类型
在这里插入图片描述
拉取代码
在这里插入图片描述

生成拉取代码的脚本
在这里插入图片描述

编写流水线脚本

拉取
pipeline {
    agent any 
    stages {
        stage("pull code"){
            steps {
                git 'https://github.com/chendao2015/tomcat-java-demo.git'
            }
            
        }  
    }
}

编写完成后测试
在这里插入图片描述

开始构建
在这里插入图片描述

构建完成后 可以查看logs
在这里插入图片描述

这里是下载后项目保存的路径
在这里插入图片描述

命令行内查看

[root@localhost ~]# cd .jenkins/workspace/test
[root@localhost test]# ls
db  Dockerfile  LICENSE  pom.xml  README.md  src  
打包

安装打包工具

[root@localhost ~]# yum install maven -y

编写打包脚本

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
                """
            }
        }  
    }
}

命令行查看项目test目录

[root@localhost test]# cd target/   //target为打包后生成的目录
[root@localhost target]# ls
classes            ly-simple-tomcat-0.0.1-SNAPSHOT      maven-archiver
generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-status
部署

需要在192.168.220.30主机部署tomcat 详细过程请查看上面的tomcat部署

配置免密登陆

[root@localhost ~]# 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:ILexF+o4ascaGiaXqsJ4gx+KbvUjWp+x8ZMfEtzeS2k root@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|                 |
|    . + .        |
|     o.*..       |
|      +oS.       |
|   o o .o . .    |
|=o*o+o...o E     |
|BO==++*o. + .    |
|@*=+.+..o. .     |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id root@192.168.220.30
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.220.30 (192.168.220.30)' can't be established.
ECDSA key fingerprint is SHA256:qoJI5joraUlKD9iXhfj+GRVHvegeRitHHDZexhWLOLs.
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.220.30's password: 

Number of key(s) added: 1

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

# 登陆验证
[root@localhost ~]# ssh root@192.168.220.30
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Thu Aug 18 14:12:17 2022 from 192.168.220.1
[root@localhost ~]# ip addr show ens33 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:8c:8e:d5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.220.30/24 brd 192.168.220.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe8c:8ed5/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

编写输出脚本

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 """
                    cd /root/.jenkins/workspace/test/target/
                   scp ly-simple-tomcat-0.0.1-SNAPSHOT.war   root@192.168.220.30:/usr/local/tomcat/webapps/
                   ssh root@192.168.220.30 '/usr/local/tomcat/bin/catalina.sh stop && /usr//local/tomcat/bin/catalina.sh start'
                   """
            }
        }
    }
}

启动构建
在这里插入图片描述

192.168.220.30主机查看

[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# ls
docs  examples  host-manager  ly-simple-tomcat-0.0.1-SNAPSHOT  ly-simple-tomcat-0.0.1-SNAPSHOT.war  manager  ROOT

#关闭防火墙和selinux
[root@localhost webapps]# systemctl disable --now firewall
[root@localhost webapps]# setenforce 0

网页访问
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值