在 CentOS 上部署 Jenkins 的完整教程
一 环境准备与 Java 安装
- 更新系统并安装常用工具:
- sudo yum update -y
- sudo yum install -y wget vim
- 安装受支持的 Java(任选其一,推荐 OpenJDK 11 或 OpenJDK 17):
- OpenJDK 11:sudo yum install -y java-11-openjdk-devel
- OpenJDK 17:sudo yum install -y java-17-openjdk-devel
- 验证版本:java -version(应显示 11 或 17 的版本号)
二 安装与启动 Jenkins
- 添加 Jenkins 官方仓库并导入 GPG 密钥:
- sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
- sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- 安装 Jenkins:sudo yum install -y jenkins
- 启动并设置开机自启:
- sudo systemctl daemon-reload
- sudo systemctl start jenkins
- sudo systemctl enable jenkins
- 查看状态:sudo systemctl status jenkins(应为 active (running))
三 防火墙与端口开放
- 开放 8080/TCP(Web 访问)与 50000/TCP(Agent 通信,如使用代理/分布式构建):
- sudo firewall-cmd --permanent --add-port=8080/tcp
- sudo firewall-cmd --permanent --add-port=50000/tcp
- sudo firewall-cmd --reload
- 如使用云服务器,还需在云平台安全组放行对应端口。
四 初始化与首次登录
- 访问:在浏览器打开 http://<服务器IP>:8080
- 解锁:查看初始管理员密码
- sudo cat /var/lib/jenkins/secrets/initialAdminPassword
- 安装插件与创建管理员:选择 Install suggested plugins,完成后设置管理员账号与密码。
五 基础配置与第一个任务
- 插件与更新源(可选,提升国内下载速度):
- 进入 Manage Jenkins → Plugin Manager → Advanced,将 Update Site URL 替换为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
- 常用插件:Pipeline、Git、Docker、GitHub Integration、Kubernetes CLI、Credentials Binding
- 全局工具与凭据:
- 在 Global Tool Configuration 配置 JDK、Git、Maven(如使用)
- 在 Manage Jenkins → Credentials 添加 SSH 私钥 或 用户名/密码 凭据,用于拉取代码与部署
- 创建一个简单任务(Freestyle 或 Pipeline):
- Freestyle:源码管理选择 Git,构建步骤执行示例:sh ‘mvn clean package’
- Pipeline:使用 SCM 拉取仓库,示例 Jenkinsfile:
- pipeline {
agent any
stages {
stage(‘Build’) { steps { sh ‘mvn clean package’ } }
stage(‘Test’) { steps { sh ‘mvn test’ } }
stage(‘Deploy’) {
when { branch ‘main’ }
steps { sh ‘mvn deploy’ }
}
}
}
- 触发方式:可配置 轮询 SCM 或 Webhook(GitHub/GitLab)实现自动构建。
六 常见问题与优化建议
- 端口被占用:编辑 /etc/sysconfig/jenkins,修改 JENKINS_PORT,然后重启:sudo systemctl restart jenkins
- 权限问题:确保 /var/lib/jenkins 等目录属主为 jenkins:jenkins,必要时执行:
- sudo chown -R jenkins:jenkins /var/lib/jenkins /var/cache/jenkins /var/log/jenkins
- 构建性能:
- 调整 JVM 堆大小(在 jenkins.service 的 JAVA_OPTS 中设置,如 -Xms2g -Xmx2g)
- 限制并发构建数、定期清理旧构建与工作空间
- 高可用与扩展:配置 Jenkins Agent/分布式构建,将任务分发到多台节点
- 安全加固:
- 禁用匿名访问,启用 CSRF 保护,使用 HTTPS(反向代理或 Nginx Ingress)
- 定期更新 Jenkins 与插件,及时修复安全漏洞。