引言

在当今快速迭代的软件开发环境中,持续集成与持续部署(CI/CD)已成为提升开发效率、保证代码质量的关键环节。Jenkins作为一款开源的自动化服务器,凭借其强大的插件生态和灵活的配置能力,在全球范围内拥有广泛的应用。然而,在实际生产环境中,很多服务器由于安全考虑无法连接外网,这就使得离线安装部署Jenkins成为一项必备技能。

本文将通过详细的步骤演示,手把手教你在CentOS服务器上完成Jenkins的离线安装、配置和插件管理,解决网络隔离环境下的部署难题。无论你是运维工程师还是开发人员,掌握这项技能都将为你的工作带来极大便利。

📌 本文亮点:

  • 完整演示离线环境下的Jenkins部署流程
  • 提供详细的版本兼容性指导
  • 包含国内镜像配置,解决访问速度问题
  • 多种启动方式详解,满足不同场景需求
  • 插件离线安装方法,完善Jenkins功能

第一章:安装前环境准备

1.1 JDK环境配置

Jenkins运行依赖于Java环境,因此在安装Jenkins前必须确保服务器已安装合适版本的JDK。

版本兼容性说明

  • Jenkins 2.357及以上版本推荐使用JDK-11或JDK-17
  • Jenkins 2.387及以上版本开始支持JDK-21
  • 本文选择JDK-21 + Jenkins 2.479.2组合,确保最佳兼容性
# 检查当前系统是否已安装Java
java -version

# 如果未安装或版本不匹配,需安装JDK-21
# 下载JDK-21离线安装包(可从Oracle官网或OpenJDK获取)
# 上传至服务器并解压安装
tar -xzf jdk-21_linux-x64_bin.tar.gz -C /usr/local/

# 配置环境变量
echo 'export JAVA_HOME=/usr/local/jdk-21' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile

# 验证安装
java -version

1.2 服务器工具准备

为了方便文件传输,建议安装lrzsz工具:

# 安装文件上传下载工具
yum install lrzsz -y

# 使用rz命令上传文件,sz命令下载文件

第二章:Jenkins安装与启动

2.1 获取Jenkins安装包

由于是离线环境,我们需要提前在可访问外网的机器上下载Jenkins war包。

下载步骤:

  1. 访问Jenkins官网下载页面
    在这里插入图片描述
  2. 选择稳定版本(本文以2.479.2为例)
    在这里插入图片描述
  3. 下载Generic Java package (.war)格式的安装包(jenkins.war)
    在这里插入图片描述
  4. 通过rz命令或SCP等方式上传至服务器
#服务器安装文件上传下载指令  rz(上传)  sz(下载)
yum install lrzsz -y

2.2 Jenkins服务启动

Jenkins提供多种启动方式,可根据实际需求选择:

前台启动(适合测试环境):

# 基本启动命令(httpPort 指定端口号)
# 特点:当前ssh窗口被锁定,可按 CTRL+C 打断程序运行,或直接关闭窗口,程序退出
java -jar jenkins.war --httpPort=18080

# 指定工作目录启动
# 特点:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行
java -jar jenkins.war --httpPort=18080 --webroot=/var/jenkins_workspace

后台启动(适合生产环境):

# 简单后台启动
# nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
# 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到 nohup.out 的文件中
nohup java -jar jenkins.war --httpPort=18080 &

# 后台启动并指定日志输出
# 下述方法会把日志文件输入到你指定的文件 jenkins.log 中,没有则会自动创建
# 2>&1 将标准错误重定向到标准输出
# & 在后台运行进程
nohup java -jar jenkins.war --httpPort=18080 > /var/log/jenkins.log 2>&1 &

# 使用系统服务方式启动(推荐生产环境使用)
cat > /etc/systemd/system/jenkins.service << EOF
[Unit]
Description=Jenkins Continuous Integration Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/jdk-21/bin/java -jar /opt/jenkins/jenkins.war --httpPort=18080
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 启用并启动Jenkins服务
systemctl daemon-reload
systemctl enable jenkins
systemctl start jenkins
systemctl status jenkins

2.3 防火墙配置

如果服务器启用了防火墙,需要开放对应端口:

# 开放18080端口
firewall-cmd --permanent --add-port=18080/tcp
firewall-cmd --reload

# 或者临时关闭防火墙(测试环境)
systemctl stop firewalld

2.4 初始访问与配置

1. 获取管理员密码:

Jenkins首次启动时会在控制台输出管理员密码,也可在以下文件中查找:

# 密码文件路径通常为
cat /root/.jenkins/secrets/initialAdminPassword

2. 访问Jenkins:

在浏览器中输入 http://服务器IP:18080,输入管理员密码解锁。

3. 自定义插件安装:

  • 选择"选择插件来安装"
  • 点击"无",跳过初始插件安装
  • 后续通过离线方式安装必要插件

4. 创建管理员账户:
填写用户名、密码、邮箱等信息,创建专属管理员账户。

5. 实例配置:

保持默认URL配置,点击"保存并完成"。

第三章:镜像配置与优化

3.1 更新中心镜像配置

由于网络限制,我们需要将Jenkins默认的更新中心替换为国内镜像,以提升后续插件安装速度。

配置步骤:

  1. 找到Jenkins工作目录中的更新中心配置文件:
vi /root/.jenkins/hudson.model.UpdateCenter.xml

在这里插入图片描述

  1. 替换默认URL为国内镜像:
<?xml version='1.0' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <!-- 清华大学镜像 -->
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
    <!-- 或使用其他国内镜像 -->
    <!-- <url>https://mirrors.cloud.tencent.com/jenkins/updates/update-center.json</url> -->
  </site>
</sites>

在这里插入图片描述

  1. 重启Jenkins使配置生效:
# 如果使用systemd服务管理
systemctl restart jenkins

# 如果使用nohup后台启动
# 查询 Jenkins 的进程号
ps -ef | grep jenkins
# 通过 kill 命令来关闭程序,彻底杀死进程号为 pid 的进程
kill -9 [进程ID]
# 重启
nohup java -jar jenkins.war --httpPort=18080 > /var/log/jenkins.log 2>&1 &

3.2 插件下载镜像配置

除了更新中心,插件下载也需要配置国内镜像以加速下载:

  1. 进入Jenkins管理界面 → Manage Jenkins → Manage Plugins → Advanced
  2. 在"Update Site"中填入上述国内镜像URL
  3. 勾选"Submit",保存配置

第四章:插件离线安装与管理

4.1 插件下载与准备

在可访问外网的环境中,从Jenkins插件官网下载所需插件:

以Locale和Chinese插件为例:

  1. 访问插件官网,搜索"Locale"
    在这里插入图片描述
    在这里插入图片描述
  2. 进入插件详情页,选择对应版本下载
    在这里插入图片描述
  3. 同样方法下载"Localization: Chinese"汉化包
  4. 将下载的.hpi文件上传至服务器(继续往下看,有上传方法!

4.2 插件安装步骤

1. 进入插件管理界面:

  • 登录Jenkins → Manage Jenkins → Plugins
    在这里插入图片描述
    在这里插入图片描述

2. 高级设置:

  • 点击"Advanced"选项卡
  • 找到"Deploy Plugin"区域
    在这里插入图片描述

3. 上传插件:

  • 点击"Choose File",选择本地.hpi插件文件
  • 点击"Deploy"开始安装
    在这里插入图片描述

4. 验证安装:

  • 在"已安装"(Installed plugins)选项卡中查看已安装的插件
  • 确认插件状态为启用

5. 重启生效:

  • 在浏览器中访问 http://服务器IP:18080/restart
  • 点击"Yes"确认重启
    在这里插入图片描述
  • 等待重启完成后重新登录
    在这里插入图片描述
    **注意:**如果以上方法已经生效了,表明汉化插件已经安装完成,如果没有生效,不要着急,继续往下看。

4.3 常用必备插件推荐

在离线环境中,建议优先安装以下核心插件:

  • Git Plugin:Git版本控制支持
  • Pipeline:流水线功能支持
  • Credentials Plugin:凭据管理
  • SSH Plugin:SSH连接支持
  • Email Extension Plugin:邮件通知扩展
  • Workspace Cleanup Plugin:工作空间清理

第五章:生产环境优化建议

5.1 服务监控与维护

日志管理:

# 查看实时日志
tail -f /var/log/jenkins.log

# 日志轮转配置
cat > /etc/logrotate.d/jenkins << EOF
/var/log/jenkins.log {
    daily
    rotate 30
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
}
EOF

备份策略:

# Jenkins数据备份脚本
#!/bin/bash
BACKUP_DIR="/backup/jenkins"
DATE=$(date +%Y%m%d_%H%M%S)
JENKINS_HOME="/root/.jenkins"

tar -czf ${BACKUP_DIR}/jenkins_backup_${DATE}.tar.gz ${JENKINS_HOME}
find ${BACKUP_DIR} -name "jenkins_backup_*.tar.gz" -mtime +7 -delete

5.2 性能优化配置

JVM参数优化:

# 在启动命令中添加JVM参数
java -Xms1024m -Xmx2048m -XX:MaxPermSize=512m -jar jenkins.war --httpPort=18080

连接数优化:
在Jenkins系统配置中调整执行器数量,根据服务器CPU核心数合理设置。

第六章:故障排查与常见问题

6.1 启动问题排查

端口占用问题:

# 检查端口占用情况
netstat -tunlp | grep 18080

# 如果端口被占用,可更换端口或终止占用进程
java -jar jenkins.war --httpPort=18081

权限问题:

# 确保Jenkins有对应目录的读写权限
chown -R jenkins:jenkins /root/.jenkins

6.2 插件兼容性问题

  • 确保插件版本与Jenkins版本兼容
  • 安装插件时注意依赖关系
  • 出现冲突时可尝试逐个安装调试

6.3 汉化不完整处理

如果汉化后仍有部分界面为英文:

  1. 检查Locale和Localization: Chinese插件是否都已安装
  2. 在系统配置 → Locale中设置为zh_CN
  3. 清除浏览器缓存重新登录
    在这里插入图片描述

结语

通过本文的详细讲解,相信你已经掌握了在CentOS服务器离线环境下部署Jenkins的完整流程。从环境准备、服务启动、镜像配置到插件管理,我们覆盖了生产环境中可能遇到的各个环节。

关键要点回顾:

  • ✅ JDK版本兼容性是成功安装的基础
  • ✅ 合理的启动方式保障服务稳定运行
  • ✅ 国内镜像配置大幅提升插件管理效率
  • ✅ 离线插件安装解决网络隔离难题
  • ✅ 生产环境优化确保长期稳定服务

Jenkins的强大功能远不止于此,后续你可以根据项目需求配置流水线、集成代码仓库、设置自动化部署等。如果在实践过程中遇到任何问题,欢迎在评论区留言交流。

如果觉得本文对你有帮助,请不要忘记:

  • 👍 点赞支持作者创作更多优质内容
  • 收藏方便后续查阅
  • 关注获取更多技术干货分享

你的支持是我们持续创作的最大动力!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐