我正在从Jenkins脚本化管道中执行ansible剧本,我需要帮助来捕获ansible剧本状态(成功/失败)。
sh "ansible-playbook -i <args>"
PLAY RECAP ********************************************* ************************
serverName:ok = 4已更改= 0不可达= 0失败= 1
[管道]管道末端
完成:成功
在上面的示例中,我有1个失败,但是Jenkins的工作状态为SUCCESS。当剧本至少出现1次失败时,如何将Jenkins的工作状态更改为“失败”?
答案 0 :(得分:0)
sh "ansible-playbook -i <args>"
我猜想shell块没有设置为set -e
,因此,像大多数shell脚本一样,它不认为失败的命令是整个脚本的失败。严重的反模式,恕我直言,但我见过的大多数脚本都很容易
因此,我相信sh "set -e; ansible-playbook -i ..."
会解决这个问题,或者(理论上)您可以使用exec
,因为这是目前唯一的命令,因此ansible-playbook 的失败是该shell失败:sh "exec ansible-playbook -i ..."