- A+
所属分类:Jenkins
Jenkins 是一款广泛使用的开源自动化工具,主要用于持续集成(CI)和持续部署(CD),帮助开发团队自动化构建、测试、部署软件的流程,提高开发效率和代码质量。以下从多个方面详细介绍 Jenkins:
Jenkins 的核心功能
- 持续集成(CI)
- 自动拉取代码仓库(如 Git、SVN)的更新。
- 触发构建流程(如编译代码、打包应用)。
- 执行自动化测试(如单元测试、集成测试),快速反馈代码问题。
- 持续部署(CD)
- 测试通过后,自动将应用部署到开发、测试或生产环境。
- 支持多环境部署配置,满足不同阶段的发布需求。
- 插件生态
- 拥有数千款插件,覆盖代码管理、构建工具、测试框架、云服务等场景(如 Git 插件、Maven 插件、Docker 插件、AWS 插件)。
- 可通过插件扩展功能,适配各种复杂的自动化需求。
- 分布式构建
- 支持将构建任务分配到多台代理节点(Agent),分担主节点(Master)压力,提高构建速度。
- 可视化界面与监控
- 提供直观的 Web 界面,可查看构建历史、测试报告、错误日志。
- 支持邮件、Slack 等通知方式,及时反馈构建结果。
Jenkins 的架构
- 主节点(Master):负责管理任务、调度构建、提供 Web 界面和插件管理。
- 代理节点(Agent):接收主节点的任务,执行实际的构建和测试工作(可运行在不同操作系统,如 Linux、Windows、macOS)。
使用场景
- 软件开发流程自动化:从代码提交到部署的全流程自动化,减少人工操作和错误。
- 多环境一致性保障:通过脚本化部署,确保开发、测试、生产环境的配置一致。
- 定时任务执行:如定期备份数据、生成报表等。
Jenkins 与其他工具的对比
工具 | 特点 | 适用场景 |
---|---|---|
Jenkins | 开源、插件丰富、灵活度高 | 复杂场景、定制化需求多 |
GitLab CI | 与 GitLab 集成紧密,配置简单 | 使用 GitLab 作为代码仓库的团队 |
GitHub Actions | 与 GitHub 无缝集成,云原生 | GitHub 项目、轻量级自动化 |
CircleCI | 云端托管,无需自建服务器 | 快速启动、中小规模项目 |
Jenkins 凭借其灵活性和强大的插件生态,成为 CI/CD 领域的标杆工具,尤其适合需要深度定制自动化流程的团队。尽管新兴工具不断涌现,但 Jenkins 仍在大量企业中广泛应用,是 DevOps 实践中的重要组成部分。
一、环境准备
安装 Java 环境,Jenkins 是基于 Java 开发的,需要 Java 运行环境支持
yum install -y java-11-openjdk-devel
java -version
openjdk version "11.0.23" 2024-04-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS, mixed mode, sharing)
二、获取 Jenkins WAR 包
可以从 Jenkins 官方网站(https://www.jenkins.io/download/)下载最新的 WAR 包
使用 wget 命令在服务器上直接下载
wget https://get.jenkins.io/war-stable/2.440.1/jenkins.war
三、部署 Jenkins
创建 Jenkins 目录,用于存放相关文件
mkdir -p /opt/jenkins
将下载好的 jenkins.war 文件移动到该目录
mv jenkins.war /opt/jenkins/
进入该目录,通过 Java 命令启动 Jenkins
cd /opt/jenkins
nohup java -jar jenkins.war --httpPort=8080 > jenkins.log 2>&1 & //后台启动
四、访问 Jenkins
在浏览器中输入服务器的 IP 地址和指定的端口号(这个界面需要等一下)

首次访问时,需要输入初始管理员密码
cat /root/.jenkins/secrets/initialAdminPassword //查看密码
c76ffc3c5e424affb895af1c7c280481 //密码

选择安装推荐的插件


安装完成后下一步,设置初始用户和密码

默认下一步

开始使用


使用ps -ef | grep jenkins
找到进程 ID,再用kill -9 <PID>
终止进程。
五、设置 Jenkins 服务
创建服务文件
tee > /usr/lib/systemd/system/jenkins.service << EOF
[Unit]
Description=Jenkins Service
After=network.target
[Service]
User=root
WorkingDirectory=/opt/jenkins
ExecStart=/usr/bin/java -jar jenkins.war --httpPort=8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
保存并退出文件,然后重新加载系统服务,启动并开机自启
systemctl daemon-reload
systemctl start jenkins
systemctl enable jenkins
