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

相关推荐
想你依然心痛12 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
AAA@峥13 小时前
容器数据不丢失:Docker 分层存储 + Volume 共享、备份迁移完整指南
运维·docker·容器
MDM.Plus13 小时前
苹果MDM技术演进:从远程控制到设备信任体系的构建
运维·服务器·安全·ios·mdm·手机店
REDcker13 小时前
macOS 挂载 Linux 远程目录详解
linux·运维·macos
2601_9615934213 小时前
Mac 上搭建Linux环境吗?VMware + CentOS Stream 9 镜像快速部署
linux·运维·ide·macos·centos
写代码的学渣14 小时前
Linux systemd 开机启动日志逐行详细解析报告
linux·运维·服务器
田里的水稻14 小时前
EP_XML\JSON配置文件和YAML
xml·运维·人工智能·机器人·自动驾驶·json
阿成学长_Cain15 小时前
Linux telinit 命令详解:运行级别切换|关机重启|系统维护一站式掌握
linux·运维·前端·网络
QXWZ_IA15 小时前
油气储罐沉降监测用什么技术方案最好?千寻自动化监测+次声波泄漏方案
运维·科技·自动化·能源
qeen8716 小时前
【Linux】指令补充与shell的简单介绍
linux·运维·服务器