如何使用 CLI 让 Jenkins 主节点离线?

Dav*_*ess 1 command-line jenkins

每当我同步我们的开发数据库时,我都会手动使主(也是唯一)节点离线,以避免一堆错误的测试失败。我有一个脚本可以执行完整的数据库导入,并且还想自动执行节点维护。

如何使用命令行界面 JAR 将主节点标记为暂时离线?

  • 我编写了一个简单的 Bash 脚本来执行 Jenkins 任务。
  • 我可以使用该脚本进行身份验证。

    $ jenkins who-am-i
    Authenticated as: david
    Authorities:
      david
      authenticated
    
    Run Code Online (Sandbox Code Playgroud)
  • 但是,我无法获取offline-nodeonline-node识别主节点。帮助指出我可以省略“master”的节点名称,但这不起作用。

    $ jenkins offline-node
    Argument "NAME" is required
    java -jar jenkins-cli.jar online-node NAME
    Stop using a node for performing builds temporarily, until the next "online-node" command.
     NAME                : Slave name, or empty string for master
    
    Run Code Online (Sandbox Code Playgroud)

    好像是专门找一个slave,但是我需要让master的执行者下线。

    $ jenkins offline-node master
    No such slave "master" exists. Did you mean "null"?
    
    Run Code Online (Sandbox Code Playgroud)

Dav*_*her 6

这并不完全直观,但 Jenkins 文档是正确的。如果要指定offline-node或 的主节点online-node,请使用空字符串:

java -jar jenkins-cli.jar offline-node ""
Run Code Online (Sandbox Code Playgroud)

也就是说,无论如何你应该使用 @gareth_bowles 答案,以防你将来添加奴隶。