温馨提示×

centos jenkins如何连git

小樊
49
2026-09-03 06:06:35
栏目: 智能运维

CentOS 上使用 Jenkins 连接 Git,通常有以下几种场景和做法。我按最常见、最实用的方式给你一步步说明。


一、前提条件

1. CentOS 已安装 Jenkins

如果还没装:

sudo yum install -y java-11-openjdk
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

二、在 Jenkins 上安装 Git 插件(默认已装)

  1. 登录 Jenkins
  2. Manage Jenkins → Manage Plugins
  3. 搜索并确认已安装:
    • ✅ Git plugin
    • ✅ Git client plugin

三、在 CentOS 上安装 Git

Jenkins 服务器本身需要 Git:

sudo yum install -y git
git --version

四、Jenkins 连接 Git 的三种方式

✅ 方式一:使用 账号密码 / Token(最简单)

1. Jenkins 配置凭据

  • Manage Jenkins → Credentials → System → Global credentials
  • 添加:
    • Kind:Username with password
    • Username:Git 用户名
    • Password:
      • GitHub/GitLab → 用 Personal Access Token
      • 公司内部 Git → 用密码

2. 新建任务(Freestyle)

  • 新建 Job
  • 源码管理 → Git
  • Repository URL:
    https://github.com/用户名/仓库.git
    
  • Credentials:选择刚创建的

✅ 保存 → Build Now


✅ 方式二:使用 SSH 密钥(推荐生产环境)

1. 生成 SSH 密钥(在 Jenkins 服务器)

sudo -u jenkins ssh-keygen -t rsa -C "jenkins@centos"

默认路径:

/var/lib/jenkins/.ssh/id_rsa

2. 把公钥加到 Git

cat /var/lib/jenkins/.ssh/id_rsa.pub
  • GitHub / GitLab → Settings → SSH Keys

3. Jenkins 添加 SSH 凭据

  • Credentials → 添加
  • Kind:SSH Username with private key
  • Username:git
  • Private Key:粘贴
    /var/lib/jenkins/.ssh/id_rsa
    

4. Job 中使用

git@github.com:用户名/仓库.git

✅ 方式三:连接 GitLab / GitHub(Webhook 自动触发)

GitLab 示例

  1. Jenkins 安装 GitLab Plugin
  2. Jenkins Job:
    • 勾选 Build when a change is pushed to GitLab
  3. GitLab:
    • Project → Settings → Webhooks
    • URL:
      http://jenkinsIP:8080/project/任务名
      

五、常见问题排查

❌ Jenkins 找不到 git

在 Jenkins 中指定 Git 路径:

  • Manage Jenkins → Global Tool Configuration
  • Git → Path:/usr/bin/git

❌ Permission denied (publickey)

sudo -u jenkins ssh -T git@github.com

确认能连通


❌ Could not resolve host

ping github.com

检查 DNS / 防火墙


六、总结(推荐方案)

场景 推荐方式
学习 / 测试 账号 + Token
生产环境 SSH Key
自动构建 Webhook

如果你愿意,可以告诉我:

  • 用的是 GitHub / GitLab / Gitee / 内网 Git
  • Jenkins 是 Freestyle 还是 Pipeline

我可以直接给你 可用的 Jenkinsfile 或完整配置示例

0