温馨提示×

centos jenkins怎么配置代理

小樊
45
2026-10-15 02:03:55
栏目: 智能运维

在 CentOS 上配置 Jenkins 代理(Agent / Node),通常有几种常见方式。下面按使用场景给你讲清楚,从最常用到高级。


一、在 Jenkins 网页端添加代理节点(推荐方式)

1️⃣ 前提条件(Agent 机器)

在 CentOS 代理机器上:

  • 已安装 Java(JDK 8 或 11)
java -version
  • 能访问 Jenkins 服务器端口(默认 8080)

2️⃣ Jenkins 主节点配置

  1. 登录 Jenkins

  2. 进入
    Manage Jenkins → Manage Nodes and Clouds → New Node

  3. 填写:

    • Node name:centos-agent
    • 类型:Permanent Agent
  4. 配置项:

    • Remote root directory:/home/jenkins
    • Labels:centos
    • Launch method:
      • ✅ Launch agents via SSH(推荐)
        • Host:代理 IP
        • Credentials:SSH 用户名 + 私钥
        • Java path:/usr/bin/java
  5. 保存


3️⃣ 启动代理

Jenkins 会通过 SSH 自动启动 agent
状态变成 Connected 即成功


二、手动启动 Jenkins Agent(无 SSH)

适用于:

  • 内网
  • 防火墙限制
  • 容器环境

1️⃣ Jenkins 端

  • 新建 Node
  • Launch method 选择: Launch agent by connecting it to the controller

2️⃣ Agent 机器(CentOS)

mkdir /home/jenkins
cd /home/jenkins

下载 agent.jar:

wget http://JENKINS_URL/jnlpJars/agent.jar

启动:

java -jar agent.jar \
  -url http://JENKINS_URL/ \
  -secret xxxxxxxx \
  -name centos-agent \
  -workDir /home/jenkins

secret 在 Jenkins Node 页面生成


三、CentOS 系统服务方式运行 Agent(生产推荐)

1️⃣ 创建 service 文件

vim /etc/systemd/system/jenkins-agent.service
[Unit]
Description=Jenkins Agent
After=network.target

[Service]
ExecStart=/usr/bin/java -jar /home/jenkins/agent.jar \
  -url http://JENKINS_URL/ \
  -secret YOUR_SECRET \
  -name centos-agent \
  -workDir /home/jenkins
User=jenkins
Restart=always

[Install]
WantedBy=multi-user.target

2️⃣ 启动

systemctl daemon-reload
systemctl enable jenkins-agent
systemctl start jenkins-agent

四、Jenkins 使用 HTTP 代理(访问外网)

如果你是问 Jenkins 本身走代理上网:

方法 1:Web 界面

Manage Jenkins → Plugins → Advanced

  • HTTP Proxy:
    • Host
    • Port
    • 用户名/密码(如有)

方法 2:启动参数

-Dhttp.proxyHost=proxy.example.com
-Dhttp.proxyPort=8080

或在 /etc/sysconfig/jenkins 中加:

JENKINS_JAVA_OPTIONS="-Dhttp.proxyHost=... -Dhttp.proxyPort=..."

五、常见问题

❌ agent 连不上

  • 防火墙
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
  • SELinux
setenforce 0

❌ Java 找不到

which java

并在 Node 配置中填 绝对路径


六、总结

方式 适用场景
SSH Agent 最常用
JNLP Agent 无 SSH
systemd 生产环境
HTTP Proxy Jenkins 上网

如果你能告诉我:

  • 是 Agent 还是 Jenkins 走代理
  • CentOS 版本
  • Jenkins 是否已装

我可以给你精确到命令的配置方案。

0 踩