我已经了解了ansible-playbook example.yml --check
可以告诉我剧本中的某些内容是否有问题的命令(据 Ansible 可以识别)。
我想我应该把这个命令和ansible-playbook example.yml
so 结合起来,只有在前一个测试听没有错误的情况下才能执行我的剧本。
我想到了这个,但我不确定它是否正确:
ansible-playbook example.yml --check && ansible-playbook example.yml
我认为这&&
将确保只有在检查正常(未发现错误)时才会发生第二个命令(实际执行剧本)。
是这样吗?如果不是,那么确保当且仅当剧本没有错误时才能播放剧本的正确方法是什么?
在我的测试中,
ansible-playbook --syntax-check
确实根据剧本中的语法错误正确设置了退出代码。你可以相信我的话,好例子和坏例子剧本的行为都如所示。一个好文件:
...和一个损坏的文件:
所以我相信你可以按照你建议的方式进行语法检查:
...虽然从语法检查部分删除输出可能会更安静:
注意:您可以将所有内容包装在一个函数中以节省输入: