温馨提示×

怎么用Debian配置Jenkins代理

小樊
35
2026-10-02 02:05:36
栏目: 智能运维

下面给你一份**在 Debian 上配置 Jenkins 代理(Agent/Node)**的常用做法,覆盖 SSH 代理 和 通过 agent.jar 手动启动 两种方式,适合大多数场景。


一、前提条件

1. Jenkins 主节点已安装

已经在 Debian 上运行 Jenkins(通常 http://<ip>:8080)。

2. 代理机器(Node)

可以是:

  • 另一台 Debian / Ubuntu
  • 同一台机器(不推荐生产环境)

代理机器需要:

  • Java(JDK 8 或 11,推荐 11)
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version

二、方式一:SSH 方式配置 Jenkins 代理(推荐)

1. 在代理机器创建 Jenkins 用户

sudo useradd -m -s /bin/bash jenkins
sudo passwd jenkins

2. 配置 SSH 登录

在 Jenkins 主节点生成密钥(如果还没有):

ssh-keygen -t rsa -b 4096

将公钥复制到代理:

ssh-copy-id jenkins@代理IP

测试:

ssh jenkins@代理IP

3. Jenkins 网页端添加代理节点

  1. 打开 Jenkins
  2. Manage Jenkins → Nodes → New Node
  3. 输入节点名,例如 debian-agent
  4. 选择 Permanent Agent
  5. 配置:
    • Remote root directory: /home/jenkins/agent
    • Launch method: Launch agents via SSH
    • Host: 代理 IP
    • Credentials: 添加 jenkins 用户 + SSH 私钥
    • Host Key Verification: Non verifying
  6. 保存

Jenkins 会自动通过 SSH 启动 agent.jar。


三、方式二:手动启动 agent.jar(无 SSH)

1. 获取 agent.jar

在代理机器:

mkdir -p ~/agent
cd ~/agent
wget http://JENKINS_IP:8080/jnlpJars/agent.jar

2. 获取节点启动命令

Jenkins:

  • Node → 你的代理 → Agent Command

类似:

java -jar agent.jar \
  -url http://JENKINS_IP:8080/ \
  -secret xxxxxxxx \
  -name debian-agent \
  -workDir /home/jenkins/agent

3. 用 systemd 后台运行(推荐)

创建服务:

sudo nano /etc/systemd/system/jenkins-agent.service

内容:

[Unit]
Description=Jenkins Agent
After=network.target

[Service]
User=jenkins
WorkingDirectory=/home/jenkins/agent
ExecStart=/usr/bin/java -jar /home/jenkins/agent/agent.jar \
  -url http://JENKINS_IP:8080/ \
  -secret xxxxxxxx \
  -name debian-agent \
  -workDir /home/jenkins/agent
Restart=always

[Install]
WantedBy=multi-user.target

启用:

sudo systemctl daemon-reload
sudo systemctl enable --now jenkins-agent

四、验证代理是否成功

  • Jenkins 首页 → Nodes
  • 节点状态应为 Online
  • 可创建一个 Pipeline 测试:
pipeline {
    agent { label 'debian-agent' }
    stages {
        stage('Test') {
            steps {
                sh 'uname -a'
            }
        }
    }
}

五、常见问题

1. Java 版本不匹配

  • Jenkins 2.3xx 推荐 Java 11
  • 代理 Java 版本应 ≥ 主节点

2. 防火墙

sudo ufw allow 22
sudo ufw allow 8080

3. agent 连不上

  • 检查 /home/jenkins/agent 权限
  • 查看 Jenkins 日志
  • 手动运行 agent.jar 看错误输出

如果你愿意,我可以:

  • 帮你写 完整 systemd 配置
  • 教你 Docker 方式运行 Jenkins 代理
  • 针对 内网 / 云服务器 给具体方案

你现在是同一台机器还是多台 Debian?

0 踩