gpt4 book ai didi

jenkins - 使用 Jenkinsfile 运行 salt 命令的最佳方法

转载 作者:行者123 更新时间:2023-12-02 17:13:21 24 4
gpt4 key购买 nike

我开始与 Jenkinsfile 合作和 pipeline plugin最近,我想知道当测试通过或合并拉取请求时,要求我的 salt master 服务器运行命令的最佳方式是什么。

有这个jenkinsci/saltstack-plugin效果很好(不处理彩色输出,但没关系)。

  1. a。 Jenkinsfile 中运行 salt 步骤会更好吗?
    b. 与上述插件交互的语法是什么?

  2. 或者我应该将我的Salt master设置(位于不同的服务器上)作为jenkins从属节点并直接在salt master上执行命令.

这里的草稿:

node("salt-master") {
sh "salt -E 'some.target.*' state.sls some.state"
}

我认为选项 2 可行,但我还没有将 master 设置为 e jenkins 从属。

最佳答案

这是对旧帖子的更新,但为了以防万一它对任何人有帮助,jenkins wiki 上给出了 saltplugin 作为 JenkinsFile 中的一个步骤的语法: https://wiki.jenkins-ci.org/display/JENKINS/saltstack-plugin

像下面这样的东西会给你 pretty-print 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 上的 react 器,以向 Slack 或 MS Teams 发送通知。因此,我们的 Jenkins 服务器能够将构建状态发布到互联网服务,而本身却无法访问互联网。

关于jenkins - 使用 Jenkinsfile 运行 salt 命令的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39355793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com