温馨提示×

debian jenkins怎么集成git

小樊
39
2026-09-29 05:09:30
栏目: 智能运维

在 Debian 上把 Jenkins 集成 Git,通常分为「安装准备 → Jenkins 配置 → 创建任务 → 触发构建」几个步骤。下面给你一份实操可用的指南。


一、环境准备(Debian)

1. 安装 Java(Jenkins 依赖)

sudo apt update
sudo apt install -y openjdk-17-jdk

2. 安装 Jenkins

sudo apt install -y wget
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install -y jenkins

启动 Jenkins:

sudo systemctl enable jenkins
sudo systemctl start jenkins

访问:

http://<服务器IP>:8080

二、安装 Git 和 Jenkins Git 插件

1. 安装 Git

sudo apt install -y git

2. Jenkins 安装 Git 插件

  • 登录 Jenkins
  • Manage Jenkins → Plugins → Available plugins
  • 搜索 Git
  • 安装 Git Plugin(一般默认已装)

三、配置 Jenkins 使用 Git

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

1. 添加 Git 凭据

  • Manage Jenkins → Credentials → System → Global credentials
  • 添加:
    • Kind: Username with password
    • Username: git 用户名
    • Password: Git 平台 Token(推荐)

GitHub / GitLab 都建议使用 Token,而不是密码


方式二:使用 SSH Key(推荐生产环境)

1. 生成 SSH Key

sudo -u jenkins ssh-keygen -t rsa -b 4096

2. 添加公钥到 Git 平台

cat /var/lib/jenkins/.ssh/id_rsa.pub

复制到 GitHub / GitLab 的 SSH Keys

3. Jenkins 添加私钥

  • Credentials → SSH Username with private key
  • 粘贴 /var/lib/jenkins/.ssh/id_rsa 内容

四、创建 Jenkins 任务集成 Git

1. 新建任务

  • New Item → Freestyle project

2. 配置 Git

  • Source Code Management → Git
  • Repository URL:
    https://github.com/user/repo.git
    或
    git@github.com:user/repo.git
    
  • Credentials:选择上面配置的

3. 构建触发(可选)

  • Poll SCM:
    H/5 * * * *
    
  • 或 Webhook(GitHub / GitLab)

4. 构建步骤

示例:

git log -1
make build

五、GitLab / GitHub Webhook(自动构建)

GitLab 示例

  1. Jenkins 安装 GitLab Plugin
  2. 任务中:
    • Build Triggers → Build when a change is pushed to GitLab
  3. GitLab:
    • Settings → Webhooks
    • URL: http://jenkins_ip/project/<job>
    • Secret Token(Jenkins 提供)

六、常见问题

Jenkins 无法拉取代码

sudo -u jenkins git ls-remote git@github.com:user/repo.git

权限问题

sudo chown -R jenkins:jenkins /var/lib/jenkins/.ssh

如果你告诉我:

  • 用的是 GitHub / GitLab / Gitee
  • Jenkins 版本
  • 是否用 Docker

我可以给你更针对性的配置示例(含 pipeline 写法)。

0 踩