在 Debian 上运行的 Jenkins 中添加节点(Agent/Slave),常见有两种方式:SSH 方式 和 JNLP(Java Web Start)方式。下面以 最常用、最稳定的 SSH 方式 为主,结合 Debian 系统环境一步步说明。
Jenkins Agent 需要 Java 运行环境:
sudo apt update
sudo apt install -y openjdk-11-jdk
验证:
java -version
Jenkins 2.4xx+ 推荐 Java 11 或 Java 17
在 Agent 机器上执行:
sudo useradd -m -s /bin/bash jenkins
sudo passwd jenkins
或直接使用 SSH Key(更安全,推荐)
sudo -u jenkins ssh-keygen -t rsa -b 4096
一路回车即可
默认路径:
/var/lib/jenkins/.ssh/id_rsa
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
sudo -u jenkins ssh jenkins@agent_ip
能免密登录即成功 ✅
Manage Jenkins
→ Nodes
→ New Node
| 项目 | 示例 |
|---|---|
| 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 |
| 项目 | 值 |
|---|---|
| Host | Agent IP |
| Credentials | 添加 Jenkins 私钥 |
| JavaPath | /usr/bin/java |
SSH Private Key/var/lib/jenkins/.ssh/id_rsajenkins点击 Launch Agent
✅ 状态变为 Connected
Manage Jenkins → Nodes
debian运行 Job,确认在 Agent 上执行。
journalctl -u jenkins
或查看:
/var/log/jenkins/jenkins.log
确认:
which java
并在节点配置中显式填写:
/usr/bin/java
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
适合 Agent 无法开放 SSH 的情况:
如你需要,我可以单独给你 JNLP + systemd 自动启动 的完整配置。
✅ 推荐方案:Debian + SSH + Jenkins 用户 + Java 11
✅ 稳定、安全、生产可用
如果你愿意,可以告诉我:
我可以给你 完全贴合你环境的配置方案。