温馨提示×

jenkins如何配置ubuntu节点

小樊
45
2026-10-21 19:59:24
栏目: 智能运维

下面给你一份**从零开始在 Jenkins 上配置 Ubuntu 节点(Agent/Slave)**的实用指南,适合新手,也覆盖常见坑。


一、准备工作(Ubuntu 节点)

1. 系统要求

  • Ubuntu 16.04 / 18.04 / 20.04 / 22.04
  • 已安装 Java(JDK 8 或 11)
  • 能访问 Jenkins Master(网络通)

2. 安装 Java

sudo apt update
sudo apt install -y openjdk-11-jdk

验证:

java -version

二、创建 Jenkins 专用用户(推荐)

sudo adduser jenkins

给 sudo(可选,构建需要时用):

sudo usermod -aG sudo jenkins

三、Jenkins Master 添加 Ubuntu 节点

方式一:SSH 连接(最常用)

1. 生成 SSH Key(在 Ubuntu 节点)

su - jenkins
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub

2. Jenkins 中添加凭据

  • Jenkins → Manage Jenkins
  • Manage Credentials
  • 添加 SSH Username with private key
    • Username: jenkins
    • Private Key: Ubuntu 节点 ~/.ssh/id_rsa

3. 添加节点

  • Manage Jenkins → Nodes → New Node
  • 配置项:
    • Name: ubuntu-node
    • Type: Permanent Agent
    • Remote root directory: /home/jenkins
    • Labels: ubuntu
    • Launch method: Launch agents via SSH
      • Host: Ubuntu IP
      • Credentials: 刚创建的 SSH
      • Host Key Verification: Non verifying

保存后 Jenkins 会自动连接。


四、方式二:通过 agent.jar 手动连接(适合内网)

1. Jenkins 创建节点

  • Launch method: Launch agent by connecting it to the master
  • 保存后会生成命令:
java -jar agent.jar -url http://jenkins-url/ \
secret=xxxx \
name=ubuntu-node

2. Ubuntu 节点执行

wget http://jenkins-url/jnlpJars/agent.jar
java -jar agent.jar -url http://jenkins-url/ \
secret=xxxx -name ubuntu-node

可写成 systemd 服务(推荐):

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

[Service]
User=jenkins
ExecStart=/usr/bin/java -jar /home/jenkins/agent.jar \
-url http://jenkins-url/ secret=xxxx -name ubuntu-node
Restart=always

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now jenkins-agent

五、验证节点是否在线

  • Jenkins → Nodes
  • 节点状态应为 Connected
  • 可运行测试 Job:
node('ubuntu') {
    sh 'uname -a'
}

六、常见问题

1. 节点连不上

  • 防火墙未开 22 端口
  • Jenkins Master IP 不通
  • Java 版本不匹配

2. Permission denied

  • SSH key 没配对
  • Jenkins 用户无目录权限

3. 构建慢

  • 节点 CPU / 内存不足
  • 未限制并发数

七、推荐配置建议

✅ 一个节点一个 Label
✅ 构建工具装在节点本地
✅ 使用 Docker Agent 更干净(进阶)


如果你愿意,我可以:

  • 给你 Docker 方式 Ubuntu 节点
  • 或针对 Git / Maven / Python 构建做示例
  • 或帮你排错(贴日志即可)

你现在是 SSH 方式还是内网 agent 方式?

0 踩