温馨提示×

debian jenkins咋配节点

小樊
39
2026-09-26 06:57:17
栏目: 智能运维

在 Debian 上配置 Jenkins 节点(Agent / Slave),一般有两种常见方式:

  1. SSH 方式(推荐,最常用)
  2. JNLP 方式(Java Web Start / agent.jar)

下面我按 最实用的 SSH 节点方式 一步一步讲,再补充 JNLP 方式。


一、准备工作(主节点 & 从节点)

1. 主节点(Jenkins Server)

  • 已安装 Jenkins(Debian)
  • 能访问从节点的 IP / 域名

2. 从节点(Debian)

# 创建 jenkins 用户(推荐)
sudo adduser jenkins

# 安装 JDK(必须)
sudo apt update
sudo apt install -y openjdk-17-jdk

# 确认 java
java -version

二、SSH 方式配置节点(推荐)

步骤 1:主节点生成 SSH Key(如果已有可跳过)

在 Jenkins 主服务器 上:

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

步骤 2:把公钥拷到从节点

ssh-copy-id jenkins@从节点IP

测试:

ssh jenkins@从节点IP

步骤 3:Jenkins Web 添加节点

  1. 打开 Jenkins

  2. Manage Jenkins → Nodes → New Node

  3. 填写:

    • Node name:debian-agent-01
    • 类型:Permanent Agent
  4. 配置:

    • Remote root directory:/home/jenkins
    • Labels:debian
    • Launch method:
      ✅ Launch agents via SSH
    • Host:从节点IP
    • Credentials:
      • 添加 jenkins 用户 + 私钥(Username with private key)
    • Host Key Verification Strategy:
      • 选 Non verifying Verification Strategy(测试环境)
  5. 保存 → Jenkins 会自动连接


步骤 4:验证

  • Node 状态显示 Connected
  • 跑一个简单 Job:
pipeline {
    agent { label 'debian' }
    stages {
        stage('test') {
            steps {
                sh 'uname -a'
            }
        }
    }
}

三、JNLP 方式(备选)

从节点操作

mkdir -p /home/jenkins/agent
cd /home/jenkins/agent
wget http://JENKINS_URL/jnlpJars/agent.jar

启动:

java -jar agent.jar \
  -url http://JENKINS_URL/ \
  -secret xxxxx \
  -name debian-agent-01

⚠️ 建议用 systemd 守护进程运行。


四、常见问题

1. 连不上

  • 防火墙:22
  • SSH 用户权限
  • Jenkins 用户不能登录?(改 /etc/passwd)

2. Java 版本不匹配

  • Jenkins 2.4xx → Java 17

3. 节点掉线

  • 用 SSH + Keepalive
  • 或 systemd 管理 JNLP

五、最小 systemd 示例(JNLP)

[Unit]
Description=Jenkins Agent

[Service]
User=jenkins
ExecStart=/usr/bin/java -jar /home/jenkins/agent/agent.jar -url http://JENKINS_URL/ -secret xxx -name debian-agent-01
Restart=always

[Install]
WantedBy=multi-user.target

如果你愿意,我可以:

  • 给你 完整 shell 一键脚本
  • 或按 Docker 节点 / Kubernetes 节点 来讲

你现在是 物理机 / 虚拟机 / 云服务器?

0 踩