Tomcat和Jenkins

Tomcat和Jenkins

1. tomcat简介

  • tomcat是一个中间件,中间件:两者之间

  • Tomcat是个容器,是一个容纳Java程序的器皿

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

  • Tomcat 技术先进、性能稳定,而且免费

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

  • 还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式

  • Tomcat处理静态HTML的能力不如Apache服务器

1.1 tomcat
  • tomcat是中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中。

  • tomcat本身的运行也依赖于jdk环境

  • jdk:是Java运行环境加上一些开发工具包

  • tomcat应用场景:lnmt

2. tomcat项目部署

2.1 java环境安装
[root@node6 ~]# dnf -y install java-17-openjdk*
[root@node6 ~]# java -version
openjdk version "17.0.1" 2021-10-19 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.1+12-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.1+12-LTS, mixed mode, sharing)
[root@node6 ~]# 
2.2 tomcat部署
[root@node6 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
2.3 部署
[root@node6 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz
[root@node6 ~]# tar xf apache-tomcat-9.0.65.tar.gz -C /usr/local/
[root@node6 ~]# cd /usr/local/
[root@node6 local]# mv apache-tomcat-9.0.65 tomcat
[root@node6 local]# ls
bin  games    lib    libexec  share  tomcat
etc  include  lib64  sbin     src
[root@node6 local]# cd tomcat/
[root@node6 tomcat]# ls
BUILDING.txt     NOTICE         RUNNING.txt  lib   webapps
CONTRIBUTING.md  README.md      bin          logs  work
LICENSE          RELEASE-NOTES  conf         temp


生成网页文件
[root@node6 tomcat]# cd webapps/
[root@node6 webapps]# ls
ROOT  docs  examples  host-manager  manager
[root@node6 webapps]# mkdir test
[root@node6 webapps]# cd test
[root@node6 test]# 
[root@node6 test]# vim index.jsp 
[root@node6 test]# cat index.jsp 
<html>
<head>
<title>mushuang</title>
</head>
<body>
    <%
        out.println("Hellow World");
    %>
</body>
</html>
[root@node6 test]# 
2.3.1 启动
[root@node6 ~]# echo 'export PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
[root@node6 ~]# source /etc/profile.d/tomcat.sh
[root@node6 ~]# source /etc/profile.d/tomcat.sh
[root@node6 ~]# 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@node6 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port Peer Address:PortProcess                                                       
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@node6 ~]# 
[root@node6 ~]# ps -ef|grep tomcat
root      293512       1  7 16:09 pts/0    00:00:02 /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      296379    1664  0 16:10 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# 
2.3.2 访问
关闭防火墙
[root@node6 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node6 ~]# vim /etc/selinux/config 
[root@node6 ~]# setenforce 0

在这里插入图片描述

在这里插入图片描述

3. 配置文件

1. 介绍tomcat文件
[root@node6 bin]# pwd
/usr/local/tomcat/bin
[root@node6 bin]# ls
bootstrap.jar                 makebase.sh
catalina-tasks.xml            setclasspath.bat
catalina.bat                  setclasspath.sh
catalina.sh //总控开关                shutdown.bat
ciphers.bat                   shutdown.sh //停止服务
ciphers.sh                    startup.bat
commons-daemon-native.tar.gz  startup.sh //启动服务
commons-daemon.jar //守护进程           tomcat-juli.jar
configtest.bat                tomcat-native.tar.gz
configtest.sh //配置文件检查             tool-wrapper.bat
daemon.sh //以守护进程方式运行                    tool-wrapper.sh
digest.bat                    version.bat
digest.sh                     version.sh 查看版本
makebase.bat
[root@node6 bin]# 


tomcat不用做环境变量,有可能部署多个tomcat


查看日志
[root@node6 tomcat]# ls
BUILDING.txt     NOTICE         RUNNING.txt  lib   webapps
CONTRIBUTING.md  README.md      bin          logs  work
LICENSE          RELEASE-NOTES  conf         temp
[root@node6 tomcat]# cd logs/
[root@node6 logs]# ls
catalina.2022-08-17.log
catalina.out //查看日志位置
host-manager.2022-08-17.log
localhost.2022-08-17.log
localhost_access_log.2022-08-17.txt
manager.2022-08-17.log
[root@node6 logs]# 


安全删除文件temp/
[root@node6 tomcat]# ls temp/
safeToDelete.tmp
[root@node6 tomcat]# 


工作目录
[root@node6 tomcat]# ls work/
Catalina
[root@node6 tomcat]# ls work/Catalina/localhost/
ROOT  docs  examples  host-manager  manager  test
[root@node6 tomcat]# 


日志记录参数
[root@node6 conf]# ls logging.properties


默认代码,示例
网站位置:
http://192.168.232.134:8080/examples/jsp/
2. 修改配置文件
[root@node6 tomcat]# cd conf/
[root@node6 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@node6 conf]# vim server.xml 

<Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />

使配置文件生效
[root@node6 ~]# catalina.sh stop
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:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@node6 ~]# 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      128               [::]:22             [::]:*                                                                  
[root@node6 ~]# ps -ef|grep tomcat
root      418331    1664  0 16:39 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# 

[root@node6 ~]# 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@node6 ~]# ps -ef|grep tomcat
root      422471       1 96 16:40 pts/0    00:00:02 /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      422723    1664  0 16:40 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port Peer Address:PortProcess                                                       
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           [::]:*                                                                 
[root@node6 ~]# 
3. 介绍网站页面

在这里插入图片描述

  • 查看服务器状态

在这里插入图片描述

  • 出现403拒绝访问

在这里插入图片描述

  • 解决
[root@node6 webapps]# cd ../conf/
[root@node6 conf]# vim tomcat-users.xml 
加两行:

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>


关闭在启动
[root@node6 ~]# catalina.sh stop
[root@node6 ~]# 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      128              [::]:22             [::]:*            
[root@node6 ~]# ps -ef|grep tomcat
root      543569    1664  0 17:10 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# 

[root@node6 ~]# catalina.sh start
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q      Local Address:Port Peer Address:PortProcess
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           [::]:*          
[root@node6 ~]# ps -ef|grep tomcat
root      544653       1  8 17:10 pts/0    00:00:02 /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      546788    1664  0 17:10 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# 
  • 没有访问成功,修改限制,改成可以在网页访问
[root@node6 ~]# cd /usr/local/tomcat/webapps/
[root@node6 webapps]# ls
ROOT  docs  examples  host-manager  manager  test
[root@node6 webapps]# cd manager/
[root@node6 manager]# ls
META-INF  WEB-INF  css  images  index.jsp  status.xsd  xform.xsl
[root@node6 manager]# ls META-INF/
context.xml
[root@node6 manager]# vim META-INF/context.xml 
[root@node6 manager]# tail META-INF/context.xml
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.232\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
[root@node6 manager]# 
  • 访问

在这里插入图片描述

在这里插入图片描述

  • heap memory 堆内存 non -heap memory 非堆内存

  • 应用程序列表跟/usr/local/tomcat/webapps相对应

在这里插入图片描述

  • 管理主机 host manager

在这里插入图片描述

  • 修改
[root@node6 tomcat]# cd conf/
[root@node6 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@node6 conf]# vim tomcat-users.xml 

<role rolename="manager-gui"/>   //添加此行
<role rolename="admin-gui"/>     //添加此行
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>  //添加此行
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
  <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
  <user username="role1" password="<must-be-changed>" roles="role1"/>
-->
</tomcat-users>


重启
[root@node6 ~]# catalina.sh stop
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:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@node6 ~]# 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       128               [::]:22             [::]:*            
[root@node6 ~]# ps -ef|grep tomcat
root      665375    1664  0 17:39 pts/0    00:00:00 grep --color=auto tomcat
[root@node6 ~]# 
[root@node6 ~]# 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@node6 ~]# 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                 [::1]:8009         [::]:*            
LISTEN 0      100                     *:8080            *:*            
LISTEN 0      128                  [::]:22           [::]:*            
[root@node6 ~]# 


[root@node6 tomcat]# cd webapps/host-manager/
[root@node6 host-manager]# ls
META-INF  WEB-INF  css  images  index.jsp
[root@node6 host-manager]# vim META-INF/context.xml 
[root@node6 host-manager]# tail META-INF/context.xml
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192\.168\.232\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
[root@node6 host-manager]# 
  • 访问

在这里插入图片描述

4. jenkins

1. 介绍jenkins
  • jenkins 持续集成工具

  • jenkins是一个用 Java 编写的开源自动化软件项目。

  • 是基于Java开发的一种持续集成工具,用于监控持续重复的工作。

  • Jenkins 用于持续构建和测试软件项目 ,集成了各种开发生命周期过程,包括构建、文档、测试、打包、模拟、部署、静态分析等等。”

  • 是一个打包,流程控制软件

  • java代码:使用开发工具(eclipse)打包

2. jenkins网址
软件位置:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.346.3/jenkins.war

[root@node6 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz  jenkins.war
[root@node6 ~]# 
3. 部署jenkins
[root@node6 ~]# cd /usr/local/tomcat/webapps/
[root@node6 webapps]# ls
ROOT  docs  examples  host-manager  manager  test
[root@node6 webapps]# mv * /opt/
[root@node6 webapps]# 

[root@node6 ~]# cp jenkins.war /usr/local/tomcat/webapps/

[root@node6 webapps]# ls
jenkins.war


重启之后
[root@node6 webapps]# ls
jenkins.war
[root@node6 webapps]# ls
jenkins  jenkins.war
[root@node6 webapps]# 
  • 查看

在这里插入图片描述

  • 登录
[root@node6 ~]# cat /root/.jenkins/secrets/initialAdminPassword
309ece77ccfe4dee9c891e0a43189a0f

在这里插入图片描述

  • 安装插件

在这里插入图片描述

  • 填写资料

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 访问成功

在这里插入图片描述

  • 查看用户列表

在这里插入图片描述

  • 构建历史:发布版本等的记录

  • 系统管理

在这里插入图片描述

  • 工作目录
[root@node6 ~]# cd .jenkins/
[root@node6 .jenkins]# ls
config.xml
hudson.model.UpdateCenter.xml
hudson.plugins.emailext.ExtendedEmailPublisher.xml
hudson.plugins.git.GitTool.xml
identity.key.enc
jenkins.install.InstallUtil.lastExecVersion
jenkins.install.UpgradeWizard.state
jenkins.model.JenkinsLocationConfiguration.xml
jenkins.telemetry.Correlator.xml
jobs
nodeMonitors.xml
nodes
plugins
queue.xml.bak
secret.key
secret.key.not-so-secret
secrets
updates
userContent
users
[root@node6 .jenkins]# 
  • 绑定任务

在这里插入图片描述

  • 邮箱

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5. 拉取代码

[root@node6 ~]# dnf -y install git
[root@node6 ~]# git clone https://github.com/chendao2015/tomcat-java-demo.git
Cloning into '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
Receiving objects: 100% (549/549), 5.08 MiB | 1018.00 KiB/s, done.
Resolving deltas: 100% (213/213), done.
[root@node6 ~]# ls
anaconda-ks.cfg              jenkins.war
apache-tomcat-9.0.65.tar.gz  tomcat-java-demo
[root@node6 ~]# cd tomcat-java-demo/
[root@node6 tomcat-java-demo]# ls
Dockerfile  LICENSE  README.md  db  pom.xml  src
[root@node6 tomcat-java-demo]# 

6. 程序打包工具

1. maven
  • 例名字叫pom.xml
  • maven是一个java编写的工具(需要安装配置),用来服务项目开发中常用的编译打包等功能。为了实现其功能,maven定义了项目的目录格式(最重要的配置文件pom.xml),定义了一些概念,坐标,依赖,仓库,生命周期(可以使用mvn命令指定执行哪些周期),插件
2. ant
  • ant 是一个由java编写的脚本工具,常用来进行打包web项目,安卓项目等。适合自动化远程部署。
3. gradle
  • gradle是一个自动化构建工具。 gradle是通过组织一系列task来最终完成自动化构建的,所以task是gradle里最重要的概念。以生成一个可用的apk为例,整个过程要经过资源的处理,javac编译,dex打包
  • gradle使用groovy或者kotlin编写。 groovy是DSL。DSL也就是Domain Specific Language的简称,也就是领域特定语言,是为了解决某一类任务专门设计的计算机语言
  • 无论是基于groovy还是kotlin编写,均是基于jvm的语言。

7. 部署项目

1. 构建测试任务
  • 在这里插入图片描述

  • 先测试

在这里插入图片描述

  • 测试成功

在这里插入图片描述

在这里插入图片描述

  • 点击测试的任务,回放

在这里插入图片描述

  • 查看视图

在这里插入图片描述

2. 任务
  • 生成流水线语法

在这里插入图片描述

  • 语法

在这里插入图片描述

  • 构建流水线脚本
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
                """
            }
        }
    }
}
  • 拉取和打包成功

在这里插入图片描述

  • 发布项目脚本并运行
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.232.134:/usr/local/tomcat/webapps/
                    ssh root@192.168.232.134 "/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start"
                """
            }
        }
    }
}
  • 查看
[root@node6 ~]# cd /usr/local/tomcat/webapps/
[root@node6 webapps]# ls
jenkins      ly-simple-tomcat-0.0.1-SNAPSHOT
jenkins.war  ly-simple-tomcat-0.0.1-SNAPSHOT.war
[root@node6 webapps]# cd ly-simple-tomcat-0.0.1-SNAPSHOT
[root@node6 ly-simple-tomcat-0.0.1-SNAPSHOT]# ls
META-INF  WEB-INF
[root@node6 ly-simple-tomcat-0.0.1-SNAPSHOT]# 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      128                   [::]:22              [::]:*                                                             
LISTEN 0      1       [::ffff:127.0.0.1]:8005               *:*                                                             
LISTEN 0      50                       *:39497              *:*                                                             
LISTEN 0      100                  [::1]:8009            [::]:*                                                             
LISTEN 0      100                      *:8080               *:*                                                             
[root@node6 ly-simple-tomcat-0.0.1-SNAPSHOT]#

在这里插入图片描述

  • 手动拉取代码
[root@node6 ~]# dnf -y install maven
[root@node6 tomcat-java-demo]# mvn clean package -Dmaven.test.skip=true
省略
[INFO] Packaging webapp
[INFO] Assembling webapp [ly-simple-tomcat] in [/root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT]
[INFO] Processing war project
[INFO] Webapp assembled in [204 msecs]
[INFO] Building war: /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:10 min
[INFO] Finished at: 2022-08-18T19:52:08+08:00
[INFO] ------------------------------------------------------------------------
[root@node6 tomcat-java-demo]# 
[root@node6 tomcat-java-demo]# ls
Dockerfile  LICENSE  README.md  db  pom.xml  src  target
[root@node6 tomcat-java-demo]# ls target/
classes
generated-sources
ly-simple-tomcat-0.0.1-SNAPSHOT
ly-simple-tomcat-0.0.1-SNAPSHOT.war
maven-archiver
maven-status
[root@node6 tomcat-java-demo]# 


配置免密登录
[root@node6 ~]# ssh-keygen -t rsa
[root@node6 ~]# ssh-copy-id root@192.168.232.134
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.232.134 (192.168.232.134)' can't be established.
ECDSA key fingerprint is SHA256:M1b2g+JiBYTV1/uwaYF30TTWZ6NLYfm9LNKrK7+IF9g.
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.232.134's password: 

Number of key(s) added: 1

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

[root@node6 ~]#    
  • 安装插件

在这里插入图片描述

3. 优化
3.1 环境
系统平台IP主机名
red8.5192.168.232.134node6
red8.5192.168.232.128node7
  • node6 部署Tomcat跟 Jenkins

  • node7 部署Tomcat,部署省略

  • node6打完包传给node7,在node7上访问项目

  • 脚本

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.232.128:/usr/local/tomcat/webapps/
                    ssh root@192.168.232.128 "/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start"
                """
            }
        }
    }
}
  • 运行
  • 使用192.168.232.128访问访问

在这里插入图片描述

[root@node7 webapps]# pwd
/usr/local/tomcat/webapps
[root@node7 webapps]# ls
ly-simple-tomcat-0.0.1-SNAPSHOT
ly-simple-tomcat-0.0.1-SNAPSHOT.war
[root@node7 webapps]# 

8. 部署另一个项目

1. 环境
系统平台IP主机名
red8.5192.168.232.134node6
red8.5192.168.232.128node7
  • node6 部署Tomcat跟 Jenkins

  • node7 部署Tomcat,部署省略

  • node6打完包传给node7,在node7上访问项目

2. 在node6操作
  • 拉取项目
root@node6 ~]# cp jenkins.war /usr/local/tomcat/webapps/
[root@node6 ~]# cd /usr/local/tomcat/webapps/
[root@node6 webapps]# ls
jenkins  jenkins.war
[root@node6 webapps]# 

拉取项目并打包
[root@node6 ~]# git clone https://gitee.com/wukongcrm/72crm-java.git
[root@node6 ~]# ls
72crm-java                   jenkins-cli.jar
anaconda-ks.cfg              jenkins.war
apache-tomcat-9.0.65.tar.gz  tomcat-java-demo
[root@node6 ~]# 
[root@node6 ~]# cd 72crm-java/
[root@node6 72crm-java]# mvn clean package -Dmaven.test.skip=true
[root@node6 72crm-java]# ls target/
ROOT.jar     classes       crm9-release.zip   maven-archiver
archive-tmp  crm9-release  generated-sources  maven-status
  • 生成流水线脚本

在这里插入图片描述

  • 配置免密登录
[root@node6 webapps]# ssh-copy-id root@192.168.232.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.232.128 (192.168.232.128)' can't be established.
ECDSA key fingerprint is SHA256:Blx3FlbkuzuEWE0fW0IcvAT1vM9oBVG/LrPyW+M99Es.
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.232.128's password: 

Number of key(s) added: 1

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

[root@node6 webapps]# 
[root@node6 webapps]# ssh root@192.168.232.128
Last failed login: Thu Aug 18 23:15:01 CST 2022 from 192.168.232.134 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Thu Aug 18 22:40:03 2022 from 192.168.232.1
[root@node7 ~]# exit
logout
Connection to 192.168.232.128 closed.
[root@node6 webapps]# 
  • 拉取代码和打包脚本
pipeline {
    agent any
    stages {
        stage("pull code"){
            steps {
                git 'https://gitee.com/wukongcrm/72crm-java.git'
            }
        }
        stage("make pkg"){
            steps {
                sh """
                    mvn clean package -Dmaven.test.skip=true
                """
            }
        }
    }
}
  • 拉取成功
[root@node6 .jenkins]# cd workspace/
[root@node6 workspace]# ls
test  test@tmp
[root@node6 workspace]# cd test
[root@node6 test]# ls
72crm.bat  Dockerfile   README.md  package.xml  src     ux
72crm.sh   LICENSE.txt  docs       pom.xml      target
[root@node6 test]# ls target/
ROOT.jar     classes       crm9-release.zip   maven-archiver
archive-tmp  crm9-release  generated-sources  maven-status
[root@node6 test]# 

在这里插入图片描述

  • 发布项目脚本并运行
pipeline {
    agent any
    stages {
        stage("pull code"){
            steps {
                git 'https://gitee.com/wukongcrm/72crm-java.git'
            }
        }
        stage("make pkg"){
            steps {
                sh """
                    mvn clean package -Dmaven.test.skip=true
                """
            }
        }
        stage("publish"){
            steps {
                sh """
                    scp target/crm9-release.zip root@192.168.232.128:/usr/local/tomcat/webapps/
                    ssh root@192.168.232.128 "/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start"
                """
            }
        }
    }
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值