温馨提示×

centos如何配置jenkins代理

小樊
48
2026-09-06 10:04:47
栏目: 智能运维

在 CentOS 上配置 Jenkins 代理(Agent / Node) 通常有两种常见方式:

  1. SSH 方式(推荐,简单稳定)
  2. JNLP 方式(通过 Java Web Start / agent.jar)

下面以 CentOS 7/8 为例,一步一步说明。


一、准备工作(Master + Agent)

1. 在 Jenkins Master 上

  • 已安装 Jenkins
  • 已安装 Git、JDK(Agent 也需要 JDK)

2. 在 CentOS Agent 机器上

# 安装 Java(Jenkins Agent 必须)
sudo yum install -y java-1.8.0-openjdk

# 验证
java -version

二、方式一:SSH 代理(最常用)

1. 创建 Jenkins 专用用户(可选但推荐)

sudo useradd jenkins
sudo passwd jenkins

2. 配置 SSH 免密登录

在 Jenkins Master 上:

ssh-keygen -t rsa
ssh-copy-id jenkins@agent_ip

测试:

ssh jenkins@agent_ip

3. Jenkins 中配置 Agent

  1. 打开 Jenkins
    Manage Jenkins → Manage Nodes and Clouds → New Node

  2. 填写:

    • Node name: centos-agent
    • Type: Permanent Agent
  3. 配置:

    • Remote root directory: /home/jenkins
    • Launch method: Launch agents via SSH
    • Host: agent_ip
    • Credentials: 添加 SSH 用户名 + 私钥
    • Host Key Verification Strategy:
      ✅ Non verifying Verification Strategy(测试可用)
  4. 保存后,Jenkins 会自动连接 Agent


三、方式二:JNLP 代理(适用于无 SSH)

1. Jenkins Master 创建 Agent

  • New Node → Permanent Agent
  • Launch method: Launch agent by connecting it to the master

记下:

  • Agent 名称
  • Jenkins URL
  • Secret

2. 在 CentOS Agent 上执行

mkdir -p /opt/jenkins
cd /opt/jenkins

# 下载 agent.jar
curl -O http://jenkins_ip:8080/jnlpJars/agent.jar

# 启动
java -jar agent.jar \
  -url http://jenkins_ip:8080/ \
  -secret xxxxxxxx \
  -name centos-agent \
  -workDir /opt/jenkins

✅ 建议用 systemd 或 nohup 后台运行


四、使用 systemd 管理 Agent(推荐)

sudo vi /etc/systemd/system/jenkins-agent.service
[Unit]
Description=Jenkins Agent

[Service]
User=jenkins
WorkingDirectory=/opt/jenkins
ExecStart=/usr/bin/java -jar /opt/jenkins/agent.jar \
  -url http://jenkins_ip:8080/ \
  -secret your_secret \
  -name centos-agent \
  -workDir /opt/jenkins
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable jenkins-agent
sudo systemctl start jenkins-agent

五、验证

  • Jenkins → Nodes
  • 状态显示为 Connected
  • 可在 Pipeline 中指定:
pipeline {
  agent { label 'centos-agent' }
  stages {
    stage('Test') {
      steps {
        sh 'hostname'
      }
    }
  }
}

六、常见问题

❌ JDK 版本不匹配 → Master / Agent 都用 Java 8
❌ 防火墙 → 开放 22 / 8080
❌ 权限不足 → Agent 目录属主正确


如果你愿意,我可以:

  • 给你 完整 Jenkinsfile 示例
  • 帮你配置 Docker Agent
  • 针对 CentOS 8 / Rocky / Alma 调整命令

直接告诉我你的 Jenkins 版本和环境即可。

0 踩