在 Jenkins 中对 Salt 执行 Shell 结果不一致

Execute Shell for Salt in Jenkins with inconsistent results

我正在尝试从 Jenkins 执行 shell 命令来执行 Salt 调用。我能够让命令在没有参数的情况下工作。

#!/bin/sh
sudo salt '*' test.ping

但是当我使用参数执行时出现错误:

[测试升级] $ /bin/sh /tmp/hudson6841559319172934172.sh 错误:未收到 return 没有仆从符合目标。没有发送命令,也没有分配 jid。 构建步骤 'Execute shell' 将构建标记为失败

命令如下所示:

#!/bin/sh
sudo salt $Minion_Group test.ping

我正在尝试插入“*”作为字符串参数。 当我回显命令时,一切看起来都很好。

有什么想法吗?

我想这是一个报价问题。

Salt 不会将星号解释为通配符,相反,它会尝试查找 '*' minion id。并且您不能删除单引号,因为它会导致在 salt 命令为 运行 之前扩展通配符。

尝试将 $Minion_Group 设置为 * 并暂时禁用 glob 扩展:

#!/bin/sh
set -f
sudo salt ${Minion_Group} test.ping
set +f