Jenkins

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配置 |

相关推荐
剑神一笑13 小时前
Linux wget 命令详解:从基础到高级下载技巧
linux·运维·服务器
AOwhisky13 小时前
Ceph系列第二期:Ceph集群部署实战(cephadm)
linux·运维·笔记·分布式·ceph·云计算·存储
Agent手记13 小时前
跨境电商从选品到售后全流程自动化可能吗?基于实在Agent与LLM+RPA的端到端落地实战指南
运维·人工智能·ai·自动化·rpa
wanhengidc13 小时前
云手机 算力终端应用
运维·服务器·网络·游戏·智能手机
郝亚军13 小时前
RK3562 nfs mount
linux·运维·服务器
IT策士13 小时前
docker 实战:将一个多组件应用完整容器化
运维·docker·容器
热爱Liunx的丘丘人13 小时前
Dockerfile 构建自定义 Nginx Web 服务镜像
运维·前端·nginx
IT策士13 小时前
Docker 数据管理:Volume 与 Bind Mount
运维·docker·容器
IT策士13 小时前
Docker Compose 入门:一条命令启动多服务
运维·docker·容器