这是对旧帖子的更新,但如果它对任何人都有帮助,jenkins wiki 上给出了 saltplugin 作为 JenkinsFile 中的一个步骤的语法:
https ://wiki.jenkins-ci.org/display/JENKINS/ saltstack插件
像下面这样的东西会给你 prettyprint json 输出
import groovy.json.*
node() {
saltresult = salt authtype: 'pam', clientInterface: local(arguments: '"ls -la"', blockbuild: true,
function: 'cmd.run', jobPollTime: 16, target: '*', targetType: 'glob'),
credentialsId: 'a3d814c2-84ed-4752-94a8-271791bb5375', servername: 'http://localhost:8000'
def prettyJson = JsonOutput.prettyPrint(saltresult)
println(prettyJson)
}
使用 jenkins 插件的一个好处是您可以访问其他 salt-api 端点,例如 hook。我们的 jenkins 服务器在无法访问互联网的内部网络上,但我们的 saltmaster 在另一个网络上并且能够出去。然后,在我们的 JenkinsFiles 中,我们可以发送一个 salt hook 调用,它会在 saltmaster 上启动一个反应器,以向 Slack 或 MS Teams 发送通知。因此,我们的 jenkins 服务器能够将构建状态发布到 Internet 服务,而自身无法访问 Internet。