Jenkins swarm plugin实现自动注册节点功能

Swarm Plugin:让客户端自动注册并创建节点

如果希望客户端只通过一个命令就“自助式”地向 Jenkins 注册”,并可自定义节点名称、标签、执行器数量等,通常使用 Swarm Plugin。原理是这样的:

  1. 在 Jenkins 上安装 Swarm Plugin

    • “Manage Jenkins” → “Plugin Manager” → 搜索 “Swarm” 并安装。
    • 安装完后,Jenkins 上会提供一个可供下载的 swarm-client.jar
  2. 客户端下载 swarm-client.jar

    • 下载地址一般是 “http://<jenkins>/swarm/swarm-client.jar” 或在插件配置页面中会给出。
  3. 客户端启动命令(示例)

    java -jar swarm-client.jar \
        -master http://<jenkinsUrl>:8080/ \
        -username <你的Jenkins账号> \
        -password <你的Jenkins密码或API Token> \
        -name "my-swarm-agent" \
        -labels "docker linux my-custom-label" \
        -executors 2 \
        -disableSslVerification   # 如果 Jenkins 是自签名 HTTPS,可以加上
    
    • -name 用于指定在 Jenkins 中注册的节点名称。
    • -labels 用于指定多个标签(空格分隔)。
    • -executors 指定该节点可以同时执行多少并发任务。
    • 更多可用参数请查看 Swarm 插件的 README 或 java -jar swarm-client.jar --help
  4. 效果

    • 当这条命令运行后,如果认证通过,Swarm Client 会自动在 Jenkins 上创建并注册一个同名节点(如果不存在),并连接上去。
    • Jenkins 端会自动显示这个节点,无需提前手动配置。
    • 下次启动时,如果同名节点已存在,就复用这个节点;如果节点不存在,或配置被删除,又会重新创建一个。

优点

  • 可以让大量分布式机器“自助式”接入 Jenkins,无需在 Jenkins 管理端挨个手动添加节点。
  • 客户端可以自定义名称、标签、执行器数量等。
  • 适合弹性或批量部署场景。

缺点

  • 需要安装额外的 Swarm Plugin;
  • 管理员需要配置一定的安全策略,例如限制哪些账号可以注册节点、限制标签范围等,以免带来安全风险。