CentOS7 通过 WAR 包部署 Jenkins

  • A+
所属分类:Jenkins

Jenkins 是一款广泛使用的开源自动化工具,主要用于持续集成(CI)和持续部署(CD),帮助开发团队自动化构建、测试、部署软件的流程,提高开发效率和代码质量。以下从多个方面详细介绍 Jenkins:

Jenkins 的核心功能

  1. 持续集成(CI)
    • 自动拉取代码仓库(如 Git、SVN)的更新。
    • 触发构建流程(如编译代码、打包应用)。
    • 执行自动化测试(如单元测试、集成测试),快速反馈代码问题。
  2. 持续部署(CD)
    • 测试通过后,自动将应用部署到开发、测试或生产环境。
    • 支持多环境部署配置,满足不同阶段的发布需求。
  3. 插件生态
    • 拥有数千款插件,覆盖代码管理、构建工具、测试框架、云服务等场景(如 Git 插件、Maven 插件、Docker 插件、AWS 插件)。
    • 可通过插件扩展功能,适配各种复杂的自动化需求。
  4. 分布式构建
    • 支持将构建任务分配到多台代理节点(Agent),分担主节点(Master)压力,提高构建速度。
  5. 可视化界面与监控
    • 提供直观的 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 地址和指定的端口号(这个界面需要等一下)

CentOS7 通过 WAR 包部署 Jenkins

首次访问时,需要输入初始管理员密码

cat /root/.jenkins/secrets/initialAdminPassword        //查看密码
c76ffc3c5e424affb895af1c7c280481        //密码
CentOS7 通过 WAR 包部署 Jenkins

选择安装推荐的插件

CentOS7 通过 WAR 包部署 Jenkins
CentOS7 通过 WAR 包部署 Jenkins

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

CentOS7 通过 WAR 包部署 Jenkins

默认下一步

CentOS7 通过 WAR 包部署 Jenkins

开始使用

CentOS7 通过 WAR 包部署 Jenkins
CentOS7 通过 WAR 包部署 Jenkins

使用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
CentOS7 通过 WAR 包部署 Jenkins
xxx