下面给你一份**在 Debian 上配置 Jenkins 代理(Agent/Node)**的常用做法,覆盖 SSH 代理 和 通过 agent.jar 手动启动 两种方式,适合大多数场景。
已经在 Debian 上运行 Jenkins(通常 http://<ip>:8080)。
可以是:
代理机器需要:
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version
sudo useradd -m -s /bin/bash jenkins
sudo passwd jenkins
在 Jenkins 主节点生成密钥(如果还没有):
ssh-keygen -t rsa -b 4096
将公钥复制到代理:
ssh-copy-id jenkins@代理IP
测试:
ssh jenkins@代理IP
debian-agent/home/jenkins/agentjenkins 用户 + SSH 私钥Jenkins 会自动通过 SSH 启动 agent.jar。
在代理机器:
mkdir -p ~/agent
cd ~/agent
wget http://JENKINS_IP:8080/jnlpJars/agent.jar
Jenkins:
类似:
java -jar agent.jar \
-url http://JENKINS_IP:8080/ \
-secret xxxxxxxx \
-name debian-agent \
-workDir /home/jenkins/agent
创建服务:
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
pipeline {
agent { label 'debian-agent' }
stages {
stage('Test') {
steps {
sh 'uname -a'
}
}
}
}
sudo ufw allow 22
sudo ufw allow 8080
/home/jenkins/agent 权限如果你愿意,我可以:
你现在是同一台机器还是多台 Debian?