jenkins特点:
易安装:仅仅一个 jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
易配置:提供友好的 GUI 配置界面;
变更支持:Jenkins 能从代码仓库(SVN /Git)中获取并产生代码更新列表,并输出到编译输出信息中;
支持永久链接:用户是通过 Web 来访问 Jenkins 的,而这些 Web 页面的链接地址都是永久链接地址,可以在各种文档中直接使用该链接;
集成 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时收取集成结果(构建一次集成需要花费一定时间,有了这个功能,就可以在等待结果过程中,干别的事情);
JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;
支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;
文件指纹信息:Jenkins 会保存构建集成所产生的 jars 文件、集成构建使用了哪个版;
支持第三方插件:Jenkins 支持第三方插件,这使得 Jenkins 功能变得越来越强大。
持续集成的作用
保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量
持续集成的特点
是一个自动化的、周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
需要有专门的集成服务器来执行集成构建;
需要有代码托管工具支持;
安装与配置Jenkins
导入安装源
root@jenkins \~# wget -O /etc/yum.repos.d/jenkins.repo --no-check-certificate https://pkg.jenkins.io/redhat-stable/jenkins.repo
root@jenkins \~# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
安装jenkins
root@jenkins \~# yum install fontconfig java-17-openjdk -y
root@jenkins \~# yum install jenkins -y
导入登录密码
root@jenkins \~# cat /var/lib/jenkins/secrets/initialAdminPassword
fa041812a53a478eb47ae69264731f8
三大原则 流动原则 可视化工作流(看板管理) 限制在制品数量(WIP 限制) 自动化流水线(CI/CD) 减少交接和手动操作 反馈原则 全链路监控与告警(Nagios 这类工具)
测试左移(单元测试、自动化测试提前)
生产环境的快速反馈(用户反馈、性能数据)
故障快速定位与恢复 持续学习与实验原则 故障复盘( blameless post-mortem,不指责复盘)
安全实验环境(灰度发布、金丝雀发布)
持续改进流程和工具
知识共享与跨职能协作
Jenkins 是整个流程的 "自动化引擎",通过 CI/CD(持续集成 / 持续部署)串联起开发与运维,实现从代码提交到部署的全流程自动化
Jenkins自由风格项目配置(核心步骤)
4.1 新建项目
新建Item → 输入项目名:tomcat-php-deploy
选择【自由风格项目】→ 确定
4.2 源码管理配置
勾选【Git】
仓库地址:file:///data/git/php-project (本地Git仓库地址)
支构建:*/main
|-----------------|-----------------------------------|---------------------------------------|
| 报错现象 | 原因 | 解决办法 |
| Jenkins拷贝文件权限不足 | Jenkins默认运行用户为jenkins,无tomcat目录权限 | 修改配置将Jenkins运行用户改为root,重启服务 |
| Tomcat无法重启,端口占用 | Tomcat关闭脚本失效,进程残留 | kill -9 $(ps -ef |
| Git提交后不自动构建 | 钩子脚本无执行权限、Jenkins地址写错 | 给post-receive添加执行权限,核对JenkinsIP和token |
| 页面访问无法解析PHP | php-fpm未启动、tomcat配置未生效 | 重启php-fpm和tomcat,检查context.xml配置 |