tomcat部署jenkins

tomcat部署jenkins

1.简介:

Jenkins是一个开源的自动化服务器工具,用于持续集成和持续交付。它能够自动化构建、测试和部署软件项目,提高开发团队的效率和软件质量。

jenkins就是一个整合工具,把代码从git或者其他代码托管平台拉取过来,然后通过脚本语言编写执行流程,达到了项目一键启动的目的

准备工作

发布的包放到wabapps目录下

2.优缺点:

优点:

  1. 易于安装和配置:Jenkins具有用户友好的界面,易于安装和配置,适用于各种项目。
  2. 可扩展性和灵活性:Jenkins支持大量的插件和扩展,可以根据需要添加自定义功能以适应不同的项目要求。
  3. 支持多种版本控制系统:Jenkins能够与多种版本控制系统(如Git、Subversion等)集成,方便代码管理和版本控制。
  4. 强大的可视化和报告功能:Jenkins提供了丰富的可视化和报告工具,方便开发团队实时监控构建和测试结果。

缺点:

  1. 配置复杂:Jenkins的配置涉及到许多参数和插件,使用起来可能需要一定的学习和了解。
  2. 对硬件资源有一定要求:Jenkins需要一定的硬件资源来保证并发构建的效率和稳定性。

3.工作原理:

Jenkins的工作原理基于事件驱动的架构。当有代码提交或定时触发时,Jenkins会触发任务的执行。任务主要通过插件实现,如构建、测试、部署等。Jenkins会通过轮询或等待事件的方式检测代码仓库的变化,并根据配置的规则和条件执行相应的操作。

4.工作流程:

  1. 代码触发:Jenkins会监听代码仓库的变化,当有代码提交或定时触发时,Jenkins会开始执行任务。
  2. 构建:Jenkins会根据任务配置,自动拉取代码,执行构建操作,如编译、打包等。
  3. 测试:构建完成后,Jenkins会执行配置的测试任务,如单元测试、集成测试等。
  4. 部署:如果测试通过,Jenkins会根据配置将构建好的应用程序部署到目标环境。
  5. 反馈和报告:Jenkins会生成构建日志、测试报告等相关信息,并发送通知给相关人员。
  6. 循环:Jenkins会定期监听代码仓库的变化,并重复执行上述步骤。

5.所需环境说明:

Jenkins是基于Java开发的,因此需要安装Java运行环境(JRE或JDK)。此外,Jenkins需要运行在支持Java的操作系统上,如Windows、Linux和Mac等。具体的硬件需求取决于项目的规模和需求,一般建议分配足够的内存、磁盘空间和网络带宽来保证Jenkins的正常运行。

6.CI/CD介绍

CI/CD是持续集成(Continuous Integration)与持续部署(Continuous Deployment)的缩写。

当涉及到持续集成与持续部署时,以下是一些关键概念和优势:

  1. 持续集成(CI):持续集成是一种开发实践,要求开发人员经常将代码集成到共享代码仓库中。这通过自动化构建、自动化测试、代码静态分析等过程来实现。持续集成的优势包括减少集成问题、快速发现错误、增加团队协作。
  2. 持续部署(CD):持续部署是在持续集成完成后,自动将应用程序部署到生产环境的过程。这可通过自动化构建、配置管理、发布工具等来实现。持续部署的优势包括减少人为错误、快速交付新功能、实现持续交付。
  3. 自动化测试:持续集成和持续部署依赖于自动化测试来验证代码和应用程序的质量。自动化测试包括单元测试、集成测试、端到端测试等,可以在每次代码提交或部署前运行。
  4. 自动化工具:实现持续集成和持续部署需要使用各种自动化工具和平台。常见的工具包括持续集成服务器(如Jenkins、Travis CI)、配置管理工具(如Ansible、Chef)、容器化平台(如Docker、Kubernetes)等。

优势:

  • 加速发布:持续集成和持续部署自动化了构建、测试和部署过程,能够更快地交付新功能和修复bug。
  • 减少风险:自动化测试和验证过程可以快速发现问题,并在早期阶段解决,降低了发布潜在问题的风险。
  • 提高代码质量:频繁地进行集成和测试,有助于发现和纠正代码质量问题,促进团队合作。
  • 提升团队效率:自动化的CI/CD流程减少了手动重复工作,使开发团队能够更集中地编写代码和解决问题。

综上所述,持续集成与持续部署是一种有效的开发实践,通过自动化构建、测试和部署来加速交付新功能,降低发布风险,并提高团队效率和代码质量。


7.实战

7.1.tomcat部署jenkins

环境说明

需要部署好tomcat服务,详细步骤访问此网站:
tomcat服务&&tomcat多实例部署

7.1.1.进入jenkins官网下载jenkins.war包

官网地址Jenkins


将jenkins.war包复制到/usr/local/tomcat/webapps/目录中,并开启tomcat服务使jenkins.war包自动解压

powershell 复制代码
[root@jenkins ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz  jenkins.war
[root@jenkins ~]# cp jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  jenkins.war  manager  ROOT  test
[root@jenkins ~]# /usr/local/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@jenkins ~]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT  test

//查看端口
[root@jenkins ~]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
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                           [::]:*

部署jenkins需将java-1.8.0-openjdk删除,安装java-17-openjdk

powershell 复制代码
//将java-1.8.0-openjdk删除
[root@jenkins ~]# rpm -qa | grep openjdk
java-1.8.0-openjdk-headless-1.8.0.312.b07-2.el8_5.x86_64
java-1.8.0-openjdk-devel-1.8.0.312.b07-2.el8_5.x86_64
java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk-headless
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk-devel
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk

//安装java-17-openjdk
[root@jenkins ~]# yum -y install java-17-openjdk
省略 . . .

//重启tomcat服务
[root@jenkins ~]# /usr/local/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@jenkins ~]# /usr/local/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.
7.1.2.访问jenkins项目
powershell 复制代码
[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
8062a842d81344a9b6be9b972d4c7bd7






部署成功

7.1.3.在jenkins页面中创建一个项目进行测试








相关推荐
天狼122234 分钟前
第5章-1 优化服务器设置
运维·服务器·adb
傻啦嘿哟2 小时前
Python正则表达式:用“模式密码“解锁复杂字符串
linux·数据库·mysql
浪裡遊3 小时前
Linux常用指令
linux·运维·服务器·chrome·功能测试
西瓜本瓜@3 小时前
在Android中如何使用Protobuf上传协议
android·java·开发语言·git·学习·android-studio
言之。3 小时前
别学了,打会王者吧
java·python·mysql·容器·spark·php·html5
机智的人猿泰山3 小时前
java kafka
java·开发语言·kafka
Algorithm15764 小时前
谈谈接口和抽象类有什么区别?
java·开发语言
细心的莽夫4 小时前
SpringCloud 微服务复习笔记
java·spring boot·笔记·后端·spring·spring cloud·微服务
段ヤシ.4 小时前
银河麒麟(内核CentOS8)安装rbenv、ruby2.6.5和rails5.2.6
linux·centos·银河麒麟·rbenv·ruby2.6.5·rails 5.2.6
264玫瑰资源库5 小时前
问道数码兽 怀旧剧情回合手游源码搭建教程(反查重优化版)
java·开发语言·前端·游戏