在 Debian 上搭建 Jenkins 集群的实用步骤
一 架构与准备
二 安装与初始化 Master
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo gpg --dearmor -o /usr/share/keyrings/jenkins-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.gpg] https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable --now jenkins
sudo systemctl status jenkins
三 配置 Agent 节点
ssh-keygen -t ed25519 -b 256 -C "jenkins@master"
ssh-copy-id <agent-user>@<agent-ip>
mkdir -p /opt/jenkins
wget -O /opt/jenkins/agent.jar http://<master-ip>:8080/jnlpJars/agent.jar
java -jar /opt/jenkins/agent.jar -jnlpUrl http://<master-ip>:8080/computer/<agent-name>/slave-agent.jnlp -secret <secret> -workDir "/opt/jenkins"
sudo tee /etc/systemd/system/jenkins-agent.service >/dev/null <<'EOF'
[Unit]
Description=Jenkins Agent
After=network.target
[Service]
User=jenkins
WorkingDirectory=/opt/jenkins
ExecStart=/usr/bin/java -jar /opt/jenkins/agent.jar -jnlpUrl http://<master-ip>:8080/computer/<agent-name>/slave-agent.jnlp -secret <secret> -workDir "/opt/jenkins"
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now jenkins-agent
四 高可用与扩展
frontend jenkins
bind *:8080
default_backend jenkins_servers
backend jenkins_servers
balance roundrobin
option httpchk GET /login
server master1 192.0.2.11:8080 check
server master2 192.0.2.12:8080 check
注意:Jenkins 的 JNLP 端口 50000 也需确保从 Master 可达(LB 或直连),否则 Agent 无法注册。五 安全与常见问题