我是靠谱客的博主 粗暴苗条,最近开发中收集的这篇文章主要介绍tomcat部署系列文章目录前言一、部署jdk环境二、jenkins三.jenkins部署项目,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、部署jdk环境
  • 二、jenkins
    • 打包工具
  • 三.jenkins部署项目


前言

一、部署jdk环境

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

下载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端口

[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           [::]:*             
[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

在这里插入图片描述

二、jenkins

通过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
9297b1f992184517a4aff1ccd2640

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

#安装git工具
[root@localhost ~]# yum install git -y
[root@localhost ~]# git clone https://github.com/chendao2015/tomcat-java-demo.git

打包工具

manven
简介:
Maven是一个跨平台的项目管理工具,是Apache组织中的一个颇为成功的开源项目。Maven主要服务基于java的项目构建,项目信息管理和依赖管理。
作用:
1.Maven可以创建项目。
2.Maven可以引入依赖的jar包。

ant
简介:
Ant是一个将软件编译、测试、部署等步骤联系在一起的自动化工具,Ant的主要用途是构建Java应用程序。
Ant提供了许多内置的任务,可以编译、组装、测试和运行Java应用程序。Ant还可以有效地用于构建非Java应用程序,例如C或C++应用程序。
优点:
Ant主要有以下优点:

跨平台。Ant是纯Java语言编写的,所以具有很好的跨平台性。
操作简单。Ant由一个内置任务和可选任务组成,运行时需要一个XML文件(构建文件)。
易维护集成。构建文件是XML格式的文件,结构清晰易于维护,由于跨平台和操作简单,很容易集成到开发环境中。

gradle
简介:
Gradle 就是一个自动化构建项目的工具,用来帮助我们自动构建项目。就像我们在写 Java 项目的时候,如果没有构建工具,我们需要先执行 javac 命令先将 Java 源码编译成 class 文件,然后再执行 jar 命令再把 class 文件打成 jar 包。有了构建工具我们只需要点一个按钮就可以了。

三.jenkins部署项目

环境ip
tomcat+jenkins192.168.146.128
tomcat192.168.146.129

需求:通过192.168.146.128主机 部署jenkins 将项目打包传输的192.168.146.129主机 并可以通过浏览器访问到项目网页
创建新任务
在这里插入图片描述
填写任务名和任务类型

在这里插入图片描述
拉取代码
在这里插入图片描述生成拉取代码的脚本
在这里插入图片描述编写流水线脚本
拉取

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

部署
设置免密登陆

[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.146.129
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.146.129 (192.168.146.129)' 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.146.129's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.146.129'"
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.146.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.146.129/24 brd 192.168.146.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.146.129:/usr/local/tomcat/webapps/
                   ssh root@192.168.146.129 '/usr/local/tomcat/bin/catalina.sh stop && /usr//local/tomcat/bin/catalina.sh start'
                   """
            }
        }
    }
}

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

[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
浏览器访问

在这里插入图片描述

最后

以上就是粗暴苗条为你收集整理的tomcat部署系列文章目录前言一、部署jdk环境二、jenkins三.jenkins部署项目的全部内容,希望文章能够帮你解决tomcat部署系列文章目录前言一、部署jdk环境二、jenkins三.jenkins部署项目所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部