Jenkins 通过 Groovy 脚本禁用远程处理上的 CLI

问题描述 投票:0回答:3

是否可以通过 Groovy 脚本禁用 Jenkins CLI over Remoting 选项?我想将脚本放入 init.groovy.d 中,以便在启动时禁用该选项,这样我就不会提示禁用它

谢谢

jenkins groovy jenkins-cli
3个回答
15
投票

你可以这样做(jenkins2.60.2)

import jenkins.model.Jenkins

jenkins.model.Jenkins.instance.getDescriptor("jenkins.CLI").get().setEnabled(false)

问候


8
投票

创建包含以下内容的文件

$JENKINS_HOME/jenkins.CLI.xml

<?xml version='1.0' encoding='UTF-8'?>
<jenkins.CLI>
  <enabled>false</enabled>
</jenkins.CLI>

服务器重新启动后,它的行为就像您在 Jenkins GUI 中按下“通过远程禁用 Jenkins CLI”按钮一样。

juhnz 的答案包括完全禁用 CLI。但是,我认为问题的目的只是通过远程处理禁用 Jenkins CLI,但以其他方式启用 CLI。


0
投票

在旧版本中,创建文件 \init.groovy.d:

import jenkins.*;
import jenkins.model.*;
import hudson.model.*;

def protocols = AgentProtocol.all()
for (protocol in protocols) { 
  if (protocol.name.contains("CLI")) {
    protocols.remove(protocol)
  }
}

def disableAccess(def list) { 
  for (extension in list) { 
    if (extension.getClass().name.contains("CLIAction")) {
       list.remove(extension)
    } 
  }
}

def instance = Jenkins.instance;
disableAccess(instance.getExtensionList(RootAction.class))
disableAccess(instance.actions)
© www.soinside.com 2019 - 2024. All rights reserved.