You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Scriptler脚本需管理员审批,如何自动审批或禁用审批?

解决Scriptler脚本自动审批/禁用审批的方法

方法1:通过Jenkins启动参数直接禁用Scriptler审批

在K8S的Jenkins Deployment配置中,修改Jenkins容器的启动参数,添加-Dscriptler.requireApproval=false:

  • 编辑Deployment的YAML文件,找到spec.template.spec.containers[].args部分,追加该参数
  • 示例修改后args:["--httpPort=8080", "-Dscriptler.requireApproval=false"]
  • 应用更新:kubectl apply -f jenkins-deployment.yaml

这个参数是Scriptler插件原生支持的配置项,直接关闭脚本审批要求,操作简单直接。

方法2:用初始化Groovy脚本自动批准所有Scriptler脚本

如果不想完全禁用审批逻辑,而是自动批准目录下的脚本,可通过Jenkins初始化脚本实现:

  1. 创建Groovy脚本approve-scriptler-scripts.groovy,内容如下:
import jenkins.model.Jenkins
import org.jenkinsci.plugins.scriptler.config.ScriptlerConfiguration
import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval

def jenkins = Jenkins.get()
def scriptApproval = ScriptApproval.get()
def scriptlerConfig = ScriptlerConfiguration.get()

// 遍历所有Scriptler脚本并自动审批
scriptlerConfig.scripts.each { script ->
    def scriptContent = new File(script.filePath).text
    def hash = scriptApproval.hash(scriptContent)
    if (!scriptApproval.isApproved(hash)) {
        scriptApproval.approveScript(hash)
        println "自动批准Scriptler脚本: ${script.name}"
    }
}
  1. 在K8S中,将该脚本通过ConfigMap挂载到Jenkins容器的/var/jenkins_home/init.groovy.d/目录
  2. 重启Jenkins Pod,初始化脚本会在启动时自动运行,完成所有Scriptler脚本的审批

关于permissive-script-security插件无效的说明

该插件仅针对Jenkins全局脚本(如Jenkinsfile内的脚本片段)生效,不覆盖Scriptler插件独立的审批机制,因此需要配合上述两种方法解决问题。若仍想使用该插件,需检查其版本与Jenkins核心版本的兼容性,建议升级到匹配的兼容版本。

内容的提问来源于stack exchange,提问作者EilonA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:45:02