在当前的DevOps实践中,持续集成与持续交付(CI/CD)已成为现代软件开发的标配。但对于中小团队或初创公司而言,直接采用商业化的CI/CD解决方案往往面临成本过高、资源占用大等问题。基于Jenkins搭建轻量级CI/CD系统,能够在保证核心功能的前提下,显著降低硬件资源消耗和运维成本。
CentOS 7作为企业级Linux发行版,以其稳定性和长期支持周期成为服务器环境的常见选择。本文将详细记录在CentOS 7系统上部署Jenkins的完整过程,特别针对国内网络环境和实际生产需求进行了优化调整。
在开始安装前,需要确认服务器满足以下基本要求:
可通过以下命令验证系统信息:
bash复制cat /etc/redhat-release # 查看系统版本
free -h # 查看内存情况
df -h # 查看磁盘空间
java -version # 检查Java环境
由于Jenkins需要从官方仓库下载软件包,同时后续需要访问各类插件仓库,建议提前配置好网络代理或镜像源。对于国内服务器,推荐使用以下方法加速访问:
bash复制sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum makecache
bash复制sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
Jenkins基于Java运行,需要先安装合适的JDK版本。推荐使用OpenJDK 11:
bash复制sudo yum install -y java-11-openjdk-devel
安装完成后验证版本:
bash复制java -version
# 预期输出应包含"11.0.x"
注意:如果系统已安装多个Java版本,需要通过
alternatives --config java命令设置默认版本。
官方推荐通过yum仓库安装Jenkins,首先导入GPG密钥并添加仓库:
bash复制sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
执行安装命令:
bash复制sudo yum install -y jenkins
启动Jenkins服务并设置开机自启:
bash复制sudo systemctl start jenkins
sudo systemctl enable jenkins
检查服务状态:
bash复制sudo systemctl status jenkins
# 正常状态应为active (running)
Jenkins启动后,可通过以下URL访问:
code复制http://<服务器IP>:8080
首次访问时需要输入初始管理员密码,该密码位于:
bash复制sudo cat /var/lib/jenkins/secrets/initialAdminPassword
在初始化向导中,建议选择"安装推荐插件",这包括:
对于国内服务器,可通过以下方法加速插件下载:
code复制https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
务必创建专用的管理员账户,避免长期使用初始密码。建议:
修改Jenkins JVM参数以提高性能:
bash复制sudo vi /etc/sysconfig/jenkins
调整以下参数(根据服务器配置):
code复制JENKINS_JAVA_OPTIONS="-Xms1024m -Xmx2048m -XX:MaxRAMPercentage=70.0"
建议设置定期备份,可通过ThinBackup插件实现:
启用CSRF防护:
限制构建节点权限:
定期更新:
bash复制sudo yum update jenkins
可能原因及解决方案:
端口冲突:
bash复制netstat -tulnp | grep 8080
如被占用,可修改/etc/sysconfig/jenkins中的JENKINS_PORT
权限问题:
bash复制sudo chown -R jenkins:jenkins /var/lib/jenkins
解决方法:
症状:构建时频繁崩溃或卡顿
解决方案:
在实际生产部署中,建议采用以下架构:
对于资源受限的环境,可考虑以下优化: