温馨提示×

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 projectPipeline
  • 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 pollingGitLab 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 buildmaster 更新为 main 或实际分支名
    • 首次拉取慢或失败:检查 DNS/网络、仓库大小、代理设置(如需要)。

0