我有一个Ansible剧本,其中包括另外两个文件:
- include: myFile1.yml
- include: myRepo/myFile2.yml
问题是myRepo
是由myFile1.yml
中的某个任务检出的git存储库,因此除非myFile2.yml
中的任务完成,否则myFile.yml
不存在成功。
Ansible有一个问题,当然,因为它试图解析文件,即使它不存在并返回错误。 ansible有没有办法推迟解析文件,直到 第一个包含文件中的任务完成后?
答案 0 :(得分:0)
这与勉强有关:https://groups.google.com/forum/#!topic/ansible-project/__NS97GEyDY
如果从git中检出你的有效剧本的一部分非常重要,我会考虑使用ansible-pull(不幸的是,在库存IIRC周围会有轻微的曲线)。
简而言之,我认为版本1.8.2没有任何解决方法。
答案 1 :(得分:0)
解决此问题的解决方案是使myRepo
成为包含myFile1.yml
的存储库的子模块存储库。这样,当主要仓库被签出时,包含另一个手册的存储库也会自动检出。这可能不适用于所有其他情况,但它在这里工作。另一种选择是将所有内容与shell脚本粘合在一起并尝试动态生成剧本,但这看起来要复杂得多......