温馨提示×

Debian Jenkins如何添加节点

小樊
36
2026-07-31 16:01:58
栏目: 智能运维

Debian 上运行的 Jenkins 中添加节点(Agent/Slave),常见有两种方式:SSH 方式JNLP(Java Web Start)方式。下面以 最常用、最稳定的 SSH 方式 为主,结合 Debian 系统环境一步步说明。


一、总体架构说明

  • Jenkins Master:已安装在 Debian 上
  • Jenkins Agent(节点):可以是另一台 Debian / Ubuntu / CentOS 机器
  • 通信方式:Master 通过 SSH 连接 Agent

二、准备 Agent 节点(Debian)

1️⃣ 安装 Java(必须)

Jenkins Agent 需要 Java 运行环境:

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

验证:

java -version

Jenkins 2.4xx+ 推荐 Java 11 或 Java 17


2️⃣ 创建 Jenkins 用户(推荐)

Agent 机器上执行:

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

或直接使用 SSH Key(更安全,推荐)


三、配置 SSH(推荐方式)

1️⃣ 在 Jenkins Master 生成 SSH Key(如果还没有)

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

一路回车即可
默认路径:

/var/lib/jenkins/.ssh/id_rsa

2️⃣ 把公钥拷贝到 Agent

ssh-copy-id jenkins@agent_ip

或手动复制:

cat ~/.ssh/id_rsa.pub

粘贴到 Agent:

mkdir -p /home/jenkins/.ssh
echo "ssh-rsa AAA..." >> /home/jenkins/.ssh/authorized_keys
chmod 600 /home/jenkins/.ssh/authorized_keys

3️⃣ 测试 Master → Agent SSH

sudo -u jenkins ssh jenkins@agent_ip

能免密登录即成功 ✅


四、在 Jenkins Web 中添加节点

1️⃣ 打开 Jenkins → 节点管理

Manage Jenkins
 → Nodes
 → New Node

2️⃣ 节点配置(重要)

项目 示例
Node Name debian-agent-01
Type Permanent Agent
Remote root directory /home/jenkins
Labels debian java
Usage Use this node as much as possible
Launch method Launch agents via SSH

SSH 配置

项目
Host Agent IP
Credentials 添加 Jenkins 私钥
JavaPath /usr/bin/java

3️⃣ 添加 SSH Credentials

  • Kind:SSH Private Key
  • Private Key:粘贴 /var/lib/jenkins/.ssh/id_rsa
  • Username:jenkins

4️⃣ 保存并启动节点

点击 Launch Agent

✅ 状态变为 Connected


五、验证节点是否可用

1️⃣ 查看节点状态

Manage Jenkins → Nodes

2️⃣ 创建测试 Job

  • Restrict where this project can be run
  • Label Expression:debian

运行 Job,确认在 Agent 上执行。


六、常见问题排查

❌ 节点无法连接

journalctl -u jenkins

或查看:

/var/log/jenkins/jenkins.log

❌ Java 找不到

确认:

which java

并在节点配置中显式填写:

/usr/bin/java

❌ SSH 权限问题

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

七、JNLP 方式(备选)

适合 Agent 无法开放 SSH 的情况:

  • Agent 主动连接 Master
  • 需要开放 Jenkins 端口(默认 50000)

如你需要,我可以单独给你 JNLP + systemd 自动启动 的完整配置。


八、总结

✅ 推荐方案:Debian + SSH + Jenkins 用户 + Java 11
✅ 稳定、安全、生产可用

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

  • Jenkins 版本
  • Agent 是否是 Docker / 云主机 / 本地虚拟机

我可以给你 完全贴合你环境的配置方案

0