tomcat部署jenkins
介绍:
Jenkins是一款开源的自动化部署工具,可以帮助开发者自动化构建、测试和部署软件。它支持多种编程语言和工具,并且可以与许多其他工具和服务集成。
在部署Jenkins时,可以使用Tomcat作为Web服务器来运行Jenkins
优缺点:
Jenkins的优点包括:
- 开源免费:Jenkins是一款开源软件,可以免费使用,没有额外的费用。
- 易于使用和配置:Jenkins提供了直观的用户界面,使得配置和管理任务变得简单。
- 强大的插件生态系统:Jenkins拥有一个庞大的插件库,可以轻松扩展其功能,支持各种开发语言和工具的集成。
- 可扩展性:Jenkins可以在分布式环境中运行,可以通过添加更多的节点来扩展其处理能力。
- 自动化:Jenkins可以自动化构建、测试和部署软件,减少了人工操作的时间和错误。
- 强大的报告和监控功能:Jenkins提供了丰富的报告和监控功能,可以帮助开发团队了解项目的构建和部署情况。
Jenkins的缺点包括:
- 配置复杂:尽管Jenkins提供了直观的用户界面,但在配置复杂的构建和部署流程时,仍然需要一定的技术知识和经验。
- 系统资源消耗较高:Jenkins需要占用一定的系统资源来运行,并且在处理大规模项目时可能需要更多的资源。
- 安全性考虑:由于Jenkins是一个开放的系统,需要特别注意其安全性配置,以防止潜在的安全漏洞。
Jenkins的工作原理主要分为以下几个步骤:
- 获取源代码:Jenkins首先从代码仓库(如Git、SVN等)获取源代码。
- 构建:Jenkins根据预先配置的构建脚本,使用构建工具(如Maven、Gradle等)对源代码进行构建。
- 测试:Jenkins运行预先编写的测试脚本,对构建后的代码进行自动化测试。
- 部署:如果测试通过,Jenkins会自动将构建后的代码部署到目标环境(如测试环境、生产环境等)。
- 报告:Jenkins生成构建和测试的报告,并将其发送给相关团队成员。
- 循环:Jenkins会不断重复以上步骤,以确保代码的持续构建、测试和部署。
Jenkins的工作流程可以通过插件进行扩展和定制,以满足特定的需求。例如,可以添加构建触发器插件,以便在代码提交时自动触发构建流程。还可以添加通知插件,以便在构建失败或成功时向相关人员发送通知。
所需环境说明:
Jenkins是基于Java开发的,因此需要安装Java运行环境(JRE或JDK)。此外,Jenkins需要运行在支持Java的操作系统上,如Windows、Linux和Mac等。具体的硬件需求取决于项目的规模和需求,一般建议分配足够的内存、磁盘空间和网络带宽来保证Jenkins的正常运行。
CI/CD介绍
CI/CD是持续集成(Continuous Integration)持续交付、与持续部署(Continuous Deployment)的缩写。可通过自动化方式,方便高效的部署服务。
关键概念和优势:
1、持续集成(CI):持续集成是一种开发实践,要求开发人员经常将代码集成到共享代码仓库中。这通过自动化构建、自动化测试、代码静态分析等过程来实现。持续集成的优势包括减少集成问题、快速发现错误、增加团队协作。
2、持续交付:在持续集成的基础上,将文件测试之后的可部署代码发送给测试团队或生产环境
3、持续部署(CD):持续部署是在持续集成完成后,自动将应用程序部署到生产环境的过程。这可通过自动化构建、配置管理、发布工具等来实现。持续部署的优势包括减少人为错误、快速交付新功能、实现持续交付。
4、自动化测试:持续集成和持续部署依赖于自动化测试来验证代码和应用程序的质量。自动化测试包括单元测试、集成测试、端到端测试等,可以在每次代码提交或部署前运行。
5、自动化工具:实现持续集成和持续部署需要使用各种自动化工具和平台。常见的工具包括持续集成服务器(如Jenkins、Travis CI)、配置管理工具(如Ansible、Chef)、容器化平台(如Docker、Kubernetes)等。
优势:
加速发布:持续集成和持续部署自动化了构建、测试和部署过程,能够更快地交付新功能和修复bug。
减少风险:自动化测试和验证过程可以快速发现问题,并在早期阶段解决,降低了发布潜在问题的风险。
提高代码质量:频繁地进行集成和测试,有助于发现和纠正代码质量问题,促进团队合作。
提升团队效率:自动化的CI/CD流程减少了手动重复工作,使开发团队能够更集中地编写代码和解决问题。
总结来说,CI/CD是一种持续集成和持续部署的实践,通过自动化构建、测试和部署过程,加速软件交付、提高代码质量和团队效率,降低风险,并促进团队合作和反馈。
部署服务
1、首先部署号tomcat服务(tomcat环境部署以及介绍_七七722的博客-CSDN博客)
2、部署jenkins官网:Jenkins
点击下载此包,然后通过xftp将软件包传输到虚拟机
[root@centos ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz jenkins.war
//复制文件到/usr/local/tomcat/webapps/下面
//因为将jenkins.war放到webapps目录里面然后重启tomcat他会自动解压jenkins.war
[root@centos ~]# cp jenkins.war /usr/local/tomcat/webapps/
//查看 复制成功
[root@centos ~]# ls /usr/local/tomcat/webapps/
docs examples host-manager jenkins.war manager ROOT test
//重启tomcat
[root@centos ~]# /usr/local/tomcat/bin/catalina.sh stop
[root@centos ~]# /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@centos ~]# ls /usr/local/tomcat/webapps/
docs examples host-manager jenkins jenkins.war manager ROOT test
[root@centos ~]# 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 *:*
部署jenkins需将java-1.8.0-openjdk删除,安装java-17-openjdk
//将java-1.8.0-openjdk删除
[root@centos ~]# 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
//-e:删除 --nodeps:强制删除
[root@centos ~]# rpm -e --nodeps java-1.8.0-openjdk-headless
[root@centos ~]# rpm -e --nodeps java-1.8.0-openjdk-devel
[root@centos ~]# rpm -e --nodeps java-1.8.0-openjdk
[root@centos ~]# rpm -qa | grep openjdk
[root@centos ~]#
//删除完成
//安装java-17-openjdk
[root@centos ~]# yum -y install java-17-openjdk
...
//重启tomcat服务
[root@centos ~]# /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@centos ~]# /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.
访问:192.168.134.155:8080/jenkins
上述标红有一个文件,该文件可以用来获取管理员密码
[root@centos ~]# cat /root/.jenkins/secrets/initialAdminPassword
2ae2ba60d0df4647a05d0418fe4c1aca
此处可以自行选择插件,按需求来
安装依赖项:
登录成功
在jenkins页面中创建一个项目进行测试
此处是对项目的描述,均保持默认
单分支:是指在项目中只有一个主要的分支,一般是master或者main分支。这种方式适用于简单的项目或者小型团队,所有的开发和发布都在这个分支上进行。在Jenkins中,可以使用单分支Pipeline来构建和部署这个项目。
多分支:是指在项目中有多个并行的分支,每个分支都有自己的开发和发布周期。这种方式适用于大型项目或者多团队协作的情况。在Jenkins中,可以使用多分支Pipeline来管理和构建这些分支。多分支Pipeline会自动检测版本控制系统中的分支,并根据配置的规则来执行相应的构建和部署操作。
保存一下
s下面的√表示构建成功
此处绿色表示成功
可以看见执行的结果