温馨提示×

怎么集成git与debian jenkins

小樊
44
2026-09-20 09:35:12
栏目: 智能运维

下面按从零到可用的思路,说明如何在 Debian 上把 Git 与 Jenkins 集成,涵盖安装、凭证、项目配置和自动触发。


一、在 Debian 上安装 Jenkins

1. 安装 Java(Jenkins 依赖)

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

2. 添加 Jenkins 源并安装

curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
  /usr/share/keyrings/jenkins-keyring.asc > /dev/null

echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
  https://pkg.jenkins.io/debian binary/ | sudo tee \
  /etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt update
sudo apt install -y jenkins

3. 启动 Jenkins

sudo systemctl enable --now jenkins

访问:

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

初始化密码:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

二、安装 Git 插件

  1. 登录 Jenkins
  2. Manage JenkinsPlugins
  3. 安装:
    • Git
    • GitHub(如使用 GitHub)
    • GitLab(如使用 GitLab)

三、在 Debian 上安装 Git

sudo apt install -y git

验证:

git --version

四、配置 Jenkins 使用 Git

方式一:使用用户名 + 密码 / Token

  1. Manage JenkinsCredentialsSystemGlobal credentials
  2. 添加:
    • Username:Git 用户名
    • Password:GitHub / GitLab Token(推荐)
  3. 在 Job 中:
    • Source Code Management → Git
    • Repository URL:https://github.com/user/repo.git
    • Credentials:选择刚创建的

方式二:使用 SSH Key(推荐)

1. 生成 SSH Key

sudo -u jenkins ssh-keygen -t ed25519

2. 添加公钥到 Git 平台

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

粘贴到 GitHub / GitLab 的 SSH Keys 中。

3. Jenkins 中添加私钥

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

五、创建 Jenkins 任务(Freestyle)

  1. New ItemFreestyle project
  2. Source Code Management:
    • 选择 Git
    • 填写仓库地址
  3. Build Steps:
    git --version
    make build
    
  4. 保存并 Build Now

六、Git 提交自动触发 Jenkins

1. Webhook 方式(推荐)

Jenkins 端

  • Job → Build Triggers
  • 勾选:
    • GitHub hook trigger
    • 或 GitLab push events

Git 平台端

  • Webhook URL:
    http://<jenkins-ip>:8080/github-webhook/
    
  • 事件:Push

2. 定时拉取(无 Webhook)

*/5 * * * *

七、常见注意事项

  • Jenkins 用户权限不足 → 使用 sudo -u jenkins
  • Git 仓库是私有 → 必须用 Token 或 SSH
  • Debian 防火墙:
    sudo ufw allow 8080
    

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

  • 用的是 GitHub / GitLab / 自建 Git
  • Freestyle / Pipeline
  • 是否要 Docker / CI/CD 自动部署

我可以直接给你一份可用配置示例

0