tomcat部署jenkins
1.简介:
Jenkins是一个开源的自动化服务器工具,用于持续集成和持续交付。它能够自动化构建、测试和部署软件项目,提高开发团队的效率和软件质量。
jenkins就是一个整合工具,把代码从git或者其他代码托管平台拉取过来,然后通过脚本语言编写执行流程,达到了项目一键启动的目的
准备工作
发布的包放到wabapps目录下
2.优缺点:
优点:
- 易于安装和配置:Jenkins具有用户友好的界面,易于安装和配置,适用于各种项目。
- 可扩展性和灵活性:Jenkins支持大量的插件和扩展,可以根据需要添加自定义功能以适应不同的项目要求。
- 支持多种版本控制系统:Jenkins能够与多种版本控制系统(如Git、Subversion等)集成,方便代码管理和版本控制。
- 强大的可视化和报告功能:Jenkins提供了丰富的可视化和报告工具,方便开发团队实时监控构建和测试结果。
缺点:
- 配置复杂:Jenkins的配置涉及到许多参数和插件,使用起来可能需要一定的学习和了解。
- 对硬件资源有一定要求:Jenkins需要一定的硬件资源来保证并发构建的效率和稳定性。
3.工作原理:
Jenkins的工作原理基于事件驱动的架构。当有代码提交或定时触发时,Jenkins会触发任务的执行。任务主要通过插件实现,如构建、测试、部署等。Jenkins会通过轮询或等待事件的方式检测代码仓库的变化,并根据配置的规则和条件执行相应的操作。
4.工作流程:
- 代码触发:Jenkins会监听代码仓库的变化,当有代码提交或定时触发时,Jenkins会开始执行任务。
- 构建:Jenkins会根据任务配置,自动拉取代码,执行构建操作,如编译、打包等。
- 测试:构建完成后,Jenkins会执行配置的测试任务,如单元测试、集成测试等。
- 部署:如果测试通过,Jenkins会根据配置将构建好的应用程序部署到目标环境。
- 反馈和报告:Jenkins会生成构建日志、测试报告等相关信息,并发送通知给相关人员。
- 循环:Jenkins会定期监听代码仓库的变化,并重复执行上述步骤。
5.所需环境说明:
Jenkins是基于Java开发的,因此需要安装Java运行环境(JRE或JDK)。此外,Jenkins需要运行在支持Java的操作系统上,如Windows、Linux和Mac等。具体的硬件需求取决于项目的规模和需求,一般建议分配足够的内存、磁盘空间和网络带宽来保证Jenkins的正常运行。
6.CI/CD介绍
CI/CD是持续集成(Continuous Integration)与持续部署(Continuous Deployment)的缩写。
当涉及到持续集成与持续部署时,以下是一些关键概念和优势:
- 持续集成(CI):持续集成是一种开发实践,要求开发人员经常将代码集成到共享代码仓库中。这通过自动化构建、自动化测试、代码静态分析等过程来实现。持续集成的优势包括减少集成问题、快速发现错误、增加团队协作。
- 持续部署(CD):持续部署是在持续集成完成后,自动将应用程序部署到生产环境的过程。这可通过自动化构建、配置管理、发布工具等来实现。持续部署的优势包括减少人为错误、快速交付新功能、实现持续交付。
- 自动化测试:持续集成和持续部署依赖于自动化测试来验证代码和应用程序的质量。自动化测试包括单元测试、集成测试、端到端测试等,可以在每次代码提交或部署前运行。
- 自动化工具:实现持续集成和持续部署需要使用各种自动化工具和平台。常见的工具包括持续集成服务器(如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页面中创建一个项目进行测试