tomcat部署jenkins项目的实现示例

 更新时间:2023年11月29日 10:21:29   作者:运维工程师001号  
Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,本文主要介绍了tomcat部署jenkins项目,具有一定的参考价值,感兴趣的可以了解一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

jenkins简介

? Jenkins自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,从而更早的进入测试阶段,更早的发现问题,这样解决问题的成本就会显著下降:持续集成缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间出现的等待时间;持续集成也意味着开发、集成、测试、部署得以持续。

Jenkins的主要特点和功能:

  • 自动化构建:Jenkins可以从版本控制系统(如Git、SVN等)中获取源代码,并根据预定义的构建脚本进行自动化构建。它支持各种构建工具和构建环境,如Maven、Gradle、Ant等。
  • 持续集成:Jenkins可以在代码提交到版本控制系统后自动触发构建过程,进行代码编译、单元测试、集成测试等,并生成构建报告和测试报告。它可以与各种测试框架和工具集成,如JUnit、TestNG、Selenium等。
  • 持续交付和部署:Jenkins可以将构建好的软件包自动部署到目标环境中,如开发、测试、生产环境等。它支持各种部署方式和工具,如Shell脚本、Docker、Kubernetes等。
  • 可扩展性:Jenkins提供了丰富的插件和扩展机制,可以满足不同团队和项目的需求。开发人员可以编写自定义插件,或者使用已有的插件来扩展Jenkins的功能。
  • 可视化界面:Jenkins提供了直观的Web界面,可以方便地查看和管理构建、测试和部署的状态和结果。它还提供了丰富的报表和图表,帮助团队了解项目的健康状况和性能指标。

环境准备:

部署jenkins前先部署tomcat,tomcat部署方法请参考:tomcat

jenkins部署

下载jenkins软件包

下载地址:Jenkins download and deployment

[root@localhost ~]# wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war
...
Length: 89532729 (85M) [application/java-archive]
Saving to: ‘jenkins.war'
jenkins.war                       100%[===========================================================>]  85.38M   299KB/s    in 3m 15s  
2023-10-11 14:07:07 (448 KB/s) - ‘jenkins.war' saved [89532729/89532729]
[root@localhost ~]# 
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz  jenkins.war
[root@localhost ~]# 

将jenkins.war文件拷贝至webapps目录下

[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# 
[root@localhost webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@localhost webapps]# 
[root@localhost webapps]# cp /root/jenkins.war .
[root@localhost webapps]# ls
docs  examples  host-manager  jenkins.war  manager  ROOT
[root@localhost webapps]# 

编辑server.xml配置文件

开启AJP协议,用于tomcat跟apache的效率,注意如果有多个tomcat,则改一下端口号,比如8009变8010

[root@localhost ~]# cd /usr/local/tomcat/conf/
[root@localhost conf]# ls
Catalina         catalina.properties  jaspic-providers.xml  logging.properties  tomcat-users.xml  web.xml
catalina.policy  context.xml          jaspic-providers.xsd  server.xml          tomcat-users.xsd
[root@localhost conf]# 
[root@localhost conf]# vim server.xml 
...
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector protocol="AJP/1.3"
               address="::1"
               port="8009"
               redirectPort="8443" />
...
"server.xml" 168L, 7563C written                                                                          
[root@localhost conf]#

重启服务,jenkins.war包会自动解压缩

[root@localhost webapps]# cd ..
[root@localhost tomcat]# ./bin/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@localhost tomcat]# 
[root@localhost tomcat]# 
[root@localhost tomcat]# ./bin/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 tomcat]# 
[root@localhost tomcat]# ss -anlt
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@localhost tomcat]#
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# ls
docs      host-manager     jenkins.war    ROOT    examples  jenkins      manager
[root@localhost webapps]#  

访问网页解锁 Jenkins

[root@localhost webapps]# cat /root/.jenkins/secrets/initialAdminPassword
d4871675ae814d8ea501b87f853b94f6
[root@localhost webapps]#

image-20231011144848802

选择安装推荐的插件

image-20231011145208200

等待安装完成

image-20231011145808906

创建管理员用户

用户名,密码和邮箱自定义

登录成功

image-20231011150855659

使用jenkins部署项目

安装拉取项目和打包项目的工具

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

手动拉取项目测试

[root@localhost ~]# git clone https://gitee.com/forgotten/tomcat-java-demo.git
Cloning into 'tomcat-java-demo'...
remote: Enumerating objects: 558, done.
remote: Total 558 (delta 0), reused 0 (delta 0), pack-reused 558
Receiving objects: 100% (558/558), 5.08 MiB | 536.00 KiB/s, done.
Resolving deltas: 100% (217/217), done.
[root@localhost ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.65.tar.gz  jenkins.war  tomcat-java-demo
[root@localhost ~]# 

将java版本更换为17

[root@localhost ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java)
*+ 2           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java)

Enter to keep the current selection[+], or type selection number: 1
[root@localhost ~]# 

手动打包测试

[root@localhost tomcat-java-demo]# mvn clean package
...
[INFO] Packaging webapp
[INFO] Assembling webapp [ly-simple-tomcat] in [/root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT]
...
[root@localhost tomcat-java-demo]# 
[root@localhost tomcat-java-demo]# cd target/
[root@localhost target]# ls
classes  generated-sources  ly-simple-tomcat-0.0.1-SNAPSHOT  ly-simple-tomcat-0.0.1-SNAPSHOT.war  maven-archiver  maven-status
[root@localhost target]# 

创建一个流水线任务

编写一个hello world 流水线脚本

点击test,然后点击立即构建

构建成功

image-20231011162214404

生成拉取脚本,编写流水线脚本

仓库URL下面填写你要拉取的项目地址

生成拉取脚本后,编写流水线脚本

点击立即构建

拉取成功

image-20231011164348598

查看流水线脚本拉取的项目

[root@localhost ~]# ls -a       
.   anaconda-ks.cfg              .bash_history  .bash_profile  .cshrc   .java     jenkins.war  .tcshrc   .wget-hsts
..  apache-tomcat-9.0.65.tar.gz  .bash_logout   .bashrc        .groovy  .jenkins  .m2          .viminfo
[root@localhost ~]# 
[root@localhost ~]# cd .jenkins/
[root@localhost .jenkins]# 
[root@localhost .jenkins]# ls
...
jenkins.install.UpgradeWizard.state             plugins                                                    users
jenkins.model.JenkinsLocationConfiguration.xml  queue.xml                                                  workspace
jenkins.telemetry.Correlator.xml                queue.xml.bak
[root@localhost .jenkins]# 
[root@localhost .jenkins]# cd workspace/test/
[root@localhost test]# ls
db  deploy.yaml  Dockerfile  jenkinsfile  LICENSE  pom.xml  README.md  src
[root@localhost test]# 

安装maven打包插件

选择需要安装的插件

点击安装

安装完成

image-20231011165658072

手动打包成功后编写流水线脚本

流水线脚本代码

pipeline {
    agent any
    stages {
        stage('pull code and package') {
            steps {
                git 'https://gitee.com/forgotten/tomcat-java-demo'
                sh 'mvn clean package -Dmaven.test.skip=true'
            }
        }
        stage("deploy"){
            steps {
                sh 'cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps'
                sh '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'
            }
        }
    }
}

构建成功

image-20231011215242380

流水线构建完成后webapps目录下可以看到拷贝和解压的ly-simple-tomcat-0.0.1-SNAPSHOT.war文件,服务重启后会自动解压war类型的文件

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

访问网页,在地址栏端口号后面加上 /ly-simple-tomcat-0.0.1-SNAPSHOT/

image-20231011215537974

到此这篇关于tomcat部署jenkins项目的实现示例的文章就介绍到这了,更多相关tomcat部署jenkins 内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • Tomcat 5.5 数据库连接池配置

    Tomcat 5.5 数据库连接池配置

    我用的数据库是MySQL5.5,所以首先要把MySQL的JDBC驱动程序拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下。
    2009-08-08
  • windows下tomcat7.0安装图文教程

    windows下tomcat7.0安装图文教程

    这篇文章主要为大家详细介绍了windows下tomcat7.0安装图文教程,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • tomcat+nginx域名配置方法

    tomcat+nginx域名配置方法

    本文给大家介绍如何通过nginx代理的方式进行域名访问,需要的朋友的朋友参考下吧
    2018-03-03
  • Tomcat9使用免费的Https证书加密网站的方法

    Tomcat9使用免费的Https证书加密网站的方法

    这篇文章主要介绍了Tomcat9使用免费的Https证书加密网站的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 配置tomcat的图文教程

    配置tomcat的图文教程

    本文主要介绍了配置tomcat的图文教程,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Tomcat服务器图片地址中文路径问题解决办法

    Tomcat服务器图片地址中文路径问题解决办法

    这篇文章主要介绍了Tomcat服务器图片地址中文路径问题解决办法,Tomcat中如果设置不当,中文路径会导致找不到文件错误,本文就讲解了解决这个问题的方法,需要的朋友可以参考下
    2015-05-05
  • 如何在mac的terminal安装Apache Tomcat

    如何在mac的terminal安装Apache Tomcat

    这篇文章主要介绍了在mac的terminal安装Apache Tomcat 的方法,需要的朋友参考下吧
    2017-05-05
  • Tomcat配置必备的10个小技巧用法总结

    Tomcat配置必备的10个小技巧用法总结

    Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行,你所需要做的就是:按照你的需求配置Tomcat,只要你正确配置,Tomcat一般都能适合你的要求,下面是一系列关于Tomcat的配置技巧,希望对你有所帮助
    2023-05-05
  • 在MyEclipse上部署Tomcat服务器的方法

    在MyEclipse上部署Tomcat服务器的方法

    这篇文章主要介绍了在MyEclipse上部署Tomcat服务器的方法,需要的朋友可以参考下
    2016-04-04
  • 浅谈Tomcat Session管理分析

    浅谈Tomcat Session管理分析

    这篇文章主要介绍了浅谈Tomcat Session管理分析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论

?


http://www.vxiaotou.com