如何配置Jenkins以禁用或自动批准Job DSL中Active Choice参数脚本审批
你之前关闭的是Job DSL自身的脚本安全校验,仅控制Job DSL代码本身是否需要审批。你现在遇到的审批是Jenkins全局脚本安全模块对Active Choice参数内嵌Groovy脚本的校验,二者属于不同的安全控制模块,所以之前的配置不生效。
以下是两种官方支持的非hack解决方案,适配本地实验场景需求:
方案1:JCasc预批准指定脚本(可控,推荐实验环境使用)
你可以在现有JCasc配置基础上新增脚本安全的已批准列表,将你Active Choice用到的脚本提前加入白名单,配置示例如下:
jenkins: security: globalJobDslSecurityConfiguration: useScriptSecurity: false # 脚本安全插件配置块 scriptSecurity: # 此处填写你所有需要预批准的脚本,内容必须和Job DSL中写的完全一致 approvedScripts: - 'return ["choice1", "choice2", "choice3"];' - '"fallback choice"'
配置重载生效后,对应脚本会自动被批准,无需手动操作。
方案2:全局禁用脚本安全校验(一劳永逸,仅适合纯本地私有实验环境)
如果不想每次新增脚本都更新白名单,可以直接全局关闭脚本安全校验功能,该配置为script-security插件官方原生支持,不属于hack方案,配置示例如下:
jenkins: security: globalJobDslSecurityConfiguration: useScriptSecurity: false scriptSecurity: # 完全禁用脚本安全审批,所有内嵌Groovy脚本都会直接运行,无需审批 disableScriptSecurity: true
配置生效后,所有需要脚本安全审批的场景(包括Active Choice参数、流水线内嵌脚本、Job DSL生成的其他自定义脚本等)都会跳过审批,直接运行。
注意:两种方案配置完成后,建议重新执行一次Job DSL生成对应流水线,即可完全消去手动审批提示。
内容的提问来源于stack exchange,提问作者u123
相关产品推荐
相关产品推荐

