【发布时间】: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。