【问题标题】:How to run next ansible playbook if previous playbook has failed如果上一个剧本失败,如何运行下一个 ansible 剧本
【发布时间】:2019-07-03 17:15:21
【问题描述】:

我们正在使用 ansible 测试我们的设置。测试结果被捕获在一个文件中。一旦我们的 ansible playbook 执行完成,我们会查看测试摘要文件并知道其中有多少通过。现在这个过程是通过詹金斯自动化的。在 Jenkins 中,在 shell 提示下,正在执行下面的代码。

cd ${repodir}
ansible-playbook -i rhelhost plugin.yml
result=$?
ansible-playbook -i rhelhost testsummary.yml
if [ $result -ne 0 ]; then  
  echo "ERROR: Execution is failed"
  exit 1
fi

但如果只有 plugin.yml 执行成功完成,那么 testsummary.yml 正在执行。如果发生故障,即使结果=$?行没有被执行。

如果 plugin.yml 失败,如何执行这些行?即使有些事情失败了,我们的测试总结也会有到那时发生的事情的结果。

【问题讨论】:

  • 更改行以捕获语句ansible-playbook -i rhelhost plugin.yml && result=$? || result=$? 中的结果。可能shell是set -e

标签: shell jenkins ansible


【解决方案1】:

试试下面

cd ${repodir}
ansible-playbook -i rhelhost plugin.yml
result=$?
if [[ $result -eq 0 ]]; then
    echo "SUCCESS"
    ansible-playbook -i rhelhost testsummary.yml
else
    echo "FAILURE"
    exit 1
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多