Shell 如果上一个playbook失败,如何运行下一个ansible playbook

Shell 如果上一个playbook失败,如何运行下一个ansible playbook,shell,jenkins,ansible,Shell,Jenkins,Ansible,我们正在用ansible测试我们的设置。测试结果被捕获到一个文件中。一旦ansible playbook执行完成,我们就可以查看测试摘要文件,并知道其中有多少通过了测试。现在这个过程通过詹金斯实现了自动化。在Jenkins中,在shell提示符下执行下面的代码 cd ${repodir} ansible-playbook -i rhelhost plugin.yml result=$? ansible-playbook -i rhelhost testsummary.yml if [ $resu

我们正在用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中出现故障,如何执行这些行?即使某项测试失败,我们的测试总结也会给出测试结果。

请尝试下面的内容

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

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