是否可以通过 Groovy 脚本禁用 Jenkins CLI over Remoting 选项?我想将脚本放入 init.groovy.d 中,以便在启动时禁用该选项,这样我就不会提示禁用它
谢谢
你可以这样做(jenkins2.60.2)
import jenkins.model.Jenkins
jenkins.model.Jenkins.instance.getDescriptor("jenkins.CLI").get().setEnabled(false)
问候
创建包含以下内容的文件
$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。
在旧版本中,创建文件 \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)