在持续集成与持续交付(CI/CD)的实践中,Jenkins作为开源自动化服务器始终占据重要地位。但对于国内开发者而言,官方源的下载速度常常成为效率瓶颈。本文将分享如何利用清华大学开源镜像站,在CentOS 8系统上实现Jenkins LTS版的极速安装,并详解端口自定义等进阶配置技巧。无论您是首次接触Jenkins的运维新人,还是需要快速搭建测试环境的技术主管,这套经过实战验证的方案都能帮助您在5分钟内完成从零到可访问的完整部署。
在开始安装前,请确保您的CentOS 8系统已满足以下基础条件:
清华大学镜像站(mirrors.tuna.tsinghua.edu.cn)为国内开发者提供了Jenkins官方仓库的完整镜像,实测下载速度可达官方源的20倍以上。与直接使用官方源相比,这种方案具有三大核心优势:
| 对比维度 | 官方源 | 清华镜像站 |
|---|---|---|
| 下载速度 | 100-500KB/s | 10-50MB/s |
| 连接稳定性 | 偶发性超时 | 国内节点零丢包 |
| 更新频率 | 实时同步 | 每6小时自动同步 |
提示:若系统已配置其他国内镜像源(如阿里云),建议临时切换至清华源以获得最佳下载体验,安装完成后可恢复原配置。
首先通过清华镜像站获取最新的Jenkins LTS版RPM包。打开终端执行以下命令:
bash复制# 进入临时下载目录
mkdir -p ~/temp && cd ~/temp
# 获取最新LTS版RPM包(示例版本号可能变化,请以镜像站实际为准)
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.387.3-1.1.noarch.rpm
若需确认当前最新版本号,可通过镜像站目录页查看:
bash复制curl -s https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/ | grep -oP 'jenkins-\d+\.\d+\.\d+-\d+\.\d+\.noarch\.rpm' | sort -V | tail -1
使用yum进行本地安装可自动解决依赖关系:
bash复制sudo yum install -y ./jenkins-*.noarch.rpm
安装完成后,系统会自动:
验证安装是否成功:
bash复制rpm -qi jenkins | grep Version
当默认8080端口被占用时,可通过以下步骤修改:
bash复制sudo vim /etc/sysconfig/jenkins
code复制JENKINS_PORT="10240"
bash复制sudo semanage port -a -t http_port_t -p tcp 10240
bash复制sudo firewall-cmd --permanent --add-port=10240/tcp
sudo firewall-cmd --reload
除了安装包加速,还需配置插件更新镜像:
bash复制sudo vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
xml复制<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
bash复制sudo sed -i 's/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/updates/default.json
| 操作 | 命令 | 预期输出 |
|---|---|---|
| 启动服务 | sudo systemctl start jenkins |
无报错即成功 |
| 设置开机自启 | sudo systemctl enable jenkins |
Created symlink... |
| 查看状态 | systemctl status jenkins -l |
Active (running)... |
| 重启服务 | sudo systemctl restart jenkins |
无报错即成功 |
| 查看日志 | journalctl -u jenkins -f |
实时滚动日志 |
问题1:Java版本不兼容
bash复制# 确认已安装合适版本
java -version
# 若需切换版本(假设安装多个Java)
sudo alternatives --config java
问题2:权限不足导致启动失败
bash复制# 修复目录权限
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chmod 755 /var/log/jenkins
问题3:插件下载超时
bash复制# 临时修改下载超时设置
sudo sed -i 's/<timeout>.*<\/timeout>/<timeout>300<\/timeout>/' /var/lib/jenkins/hudson.model.UpdateCenter.xml
完成基础安装后,建议立即执行以下安全措施:
修改初始管理员密码
首次登录后,务必替换自动生成的初始密码:
bash复制# 查看初始密码(仅首次安装有效)
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
配置HTTPS访问
使用Nginx反向代理添加SSL加密:
nginx复制server {
listen 443 ssl;
server_name jenkins.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://127.0.0.1:10240;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
定期备份策略
创建自动化备份脚本(/usr/local/bin/backup_jenkins.sh):
bash复制#!/bin/bash
BACKUP_DIR="/opt/jenkins_backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
tar -czf $BACKUP_DIR/jenkins_$TIMESTAMP.tar.gz /var/lib/jenkins/{jobs,users,secrets} /etc/sysconfig/jenkins
find $BACKUP_DIR -type f -mtime +30 -delete
添加定时任务:
bash复制(crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/backup_jenkins.sh") | crontab -
在实际生产环境中,我曾遇到因未及时更新插件导致的漏洞利用案例。通过将更新源固定为国内镜像并设置每周自动更新策略,后续再未出现类似安全问题。建议将重要配置变更记录在Jenkins内置的"系统日志"中,便于后续审计追踪。