詹金斯(Jenkins)的工作状态为“成功”,但Ansible剧本失败了

时间:2019-01-14 00:52:49

标签: jenkins ansible jenkins-pipeline devops

我正在从Jenkins脚本化管道中执行ansible剧本,我需要帮助来捕获ansible剧本状态(成功/失败)。

sh "ansible-playbook -i <args>"
  
    

PLAY RECAP ********************************************* ************************

         

serverName:ok = 4已更改= 0不可达= 0失败= 1

         

[管道]管道末端

         

完成:成功

  

在上面的示例中,我有1个失败,但是Jenkins的工作状态为SUCCESS。当剧本至少出现1次失败时,如何将Jenkins的工作状态更改为“失败”?

1 个答案:

答案 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 ..."