Jenkins在CentOS如何集成版本控制
小樊
35
2025-12-27 12:45:33
在CentOS上集成版本控制的核心流程
一 环境准备与安装
- 安装 Java 11(Jenkins 2.x 推荐):sudo yum install -y java-11-openjdk-devel
- 安装 Git:sudo yum install -y git,验证:git --version
- 安装 Jenkins(官方仓库方式):
- 添加仓库: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
- 安装并启动:sudo yum install -y jenkins && sudo systemctl start jenkins && sudo systemctl enable jenkins
- 访问控制台:打开浏览器进入 http://<服务器IP>:8080,按向导完成初始化(解锁、安装推荐插件、创建管理员)。
二 安装与配置版本控制插件
- 在 Manage Jenkins > Manage Plugins 安装:
- 必装:Git plugin
- 可选:GitHub plugin / GitLab plugin(平台集成与 Webhook 支持)、Subversion plugin(如需 SVN)
- 在 Manage Jenkins > Global Tool Configuration 配置 Git 工具路径(如系统自动检测到 /usr/bin/git 可直接使用)。
三 配置版本控制凭据
- 进入 Manage Jenkins > Manage Credentials > System > Global credentials > Add Credentials
- 常用类型:
- Username with password:用于 HTTPS 仓库(用户名 + 密码或个人访问令牌)
- SSH Username with private key:用于 SSH 仓库(用户名 + 私钥;将公钥添加到 Git 仓库的 Deploy Keys/SSH Keys)
- 保存后在任务中通过 Credentials 下拉选择使用。
四 创建任务并集成 Git
- 新建任务:New Item > 输入名称 > 选择 Freestyle project 或 Pipeline
- Freestyle 项目配置:
- Source Code Management 选择 Git,填写 Repository URL(如 https://github.com/user/repo.git 或 git@github.com:user/repo.git)
- 选择上一步的 Credentials
- Branches to build:如 */main 或 */develop
- 构建步骤:按需添加 Execute shell / Invoke top-level Maven targets / Invoke Gradle script
- Pipeline 项目配置:
- Definition 选择 Pipeline script from SCM
- SCM 选择 Git,填写 Repository URL / Credentials / Branch
- Script Path:如 Jenkinsfile(需存在于仓库根目录)
- 示例 Jenkinsfile(声明式):
pipeline {
agent any
stages {
stage(‘Checkout’) {
steps { git branch: ‘main’, url: ‘https://github.com/your-org/your-repo.git’ }
}
stage(‘Build’) {
steps { sh ‘mvn clean package’ }
}
stage(‘Test’) {
steps { sh ‘mvn test’ }
}
}
}
- 保存后点击 Build Now 验证拉取与构建。
五 配置自动触发与常见问题排查
- 自动触发方式:
- Poll SCM:定时检查变更,Cron 表达式如 **H/5 * * * *** 表示每 5 分钟检查一次
- Webhook(推荐):在 GitHub/GitLab 项目设置 Webhook
- GitHub:Payload URL 如 http:///github-webhook/,事件选 Push events
- GitLab:Payload URL 如 http:///gitlab-webhook/,事件选 Push events
- 在 Jenkins 任务中勾选对应的 GitHub hook trigger for GITScm polling 或 GitLab hook trigger
- 常见问题与要点:
- 无法连接仓库:核对 URL 协议(HTTPS/SSH) 与 凭据 是否匹配;SSH 请确保服务器能解析 github.com 等域名并放通 22 端口
- Webhook 未触发:确认 Jenkins URL 可被外网访问、Webhook 路径正确、CSRF 保护策略允许;必要时在系统配置中启用 CSRF 豁免 或使用 Jenkins URL 白名单
- 权限不足:SSH 方式需确保 Deploy Key 具备读权限;HTTPS 方式建议使用 Personal Access Token 替代密码
- 分支名称变更:将 Branches to build 从 master 更新为 main 或实际分支名
- 首次拉取慢或失败:检查 DNS/网络、仓库大小、代理设置(如需要)。