使用Configuration-as-Code插件配置Jenkins后,如何自动批准脚本
解决Jenkins JCasC配置任务自动批准脚本的方法
方法1:在JCasC配置里添加批准的脚本哈希
先拿到需要批准的脚本的SHA-1哈希值:
- 手动跑一次任务,去Jenkins的「Manage Jenkins」→「In-process Script Approval」里找到对应脚本,复制它的SHA-1值;
- 或者用命令行计算脚本内容的哈希,比如:
echo -n "你的脚本内容" | sha1sum
然后在你的JCasC配置文件(比如jenkins.yaml)里添加这段配置:
unclassified: scriptApproval: approvedSignatures: - "这里填脚本的SHA-1哈希值"
如果有多个脚本需要批准,就添加多条- "哈希值"条目。
方法2:关闭脚本安全审批(仅测试环境适用)
如果是测试环境、且能完全控制所有脚本的安全性,可以直接关掉脚本审批机制。在JCasC配置里添加:
security: scriptApproval: enabled: false
生产环境禁止使用,这种方式会完全移除脚本安全校验,带来严重安全风险。
方法3:用Groovy脚本提前自动批准
在JCasC的initScripts里加入一段Groovy脚本,可针对性批准指定脚本,或批量处理待审批脚本:
jenkins: initScripts: - script: | import org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval def scriptApproval = ScriptApproval.get() // 单脚本批准:替换成你需要批准的脚本内容 def targetScript = "你的脚本内容" scriptApproval.approveScript(targetScript) // 批量批准所有待审批脚本(谨慎使用) // scriptApproval.pendingScripts.each { scriptApproval.approveScript(it.script) }
内容的提问来源于stack exchange,提问作者lony
相关产品推荐
相关产品推荐

