但是我还有一个脚本可以自动设置我的jenkins机器,它应该创建一个不需要进一步GUI *** 作的即用型机器.此脚本已使用jenkins脚本控制台批准从属启动命令.在脚本控制台中执行此 *** 作的groovy代码如下所示.
Def Language = 'system-command';def scriptSnippet = 'ssh me@slavemachine java -jar ~/bin/slave.jar';def scriptApproval = Jenkins.instance.getExtensionList( 'org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval')[0];def scriptHash = scriptApproval.hash(scriptSnippet,language);scriptApproval.approveScript(scriptHash);
这工作正常,但现在我想使用相同的代码来批准脚本
来自我的管道的片段.我交换了前两行
Def Language = 'groovy'def scriptSnippet = 'new groovy.Json.JsonSlurperClassic';
其中scriptSnippet取自scriptApproval.xml文件.
执行此 *** 作会添加一个新的< approvedScriptHashes>进入scriptApproval.xml文件,但不删除< pendingSignature>包含脚本片段的条目.这意味着它不起作用.
我的猜测是,语言是错误的,但我尝试的其他值如groovy-sh或system-commands也不起作用.你有什么想法它不起作用吗?
感谢您的时间.
解决方法 您可以使用ScriptApproval#approveSignature
方法.这是一个适用于我的Jenkins 2.85的示例 def signature = 'new groovy.Json.JsonSlurperClassic'org.jenkinsci.plugins.scriptsecurity.scripts.ScriptApproval.get().approveSignature(signature)总结
以上是内存溢出为你收集整理的如何通过groovy脚本控制台批准jenkins文件中的脚本片段?全部内容,希望文章能够帮你解决如何通过groovy脚本控制台批准jenkins文件中的脚本片段?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)