我试图在一个文件中进行两个不同的更改,但只有最后一个更改正在更新...看起来像ansible将文件保存在内存中(在第一次更改后)并且永远不会将其转储回磁盘,因为它知道有/根据.yml文件进行更多更改。因此,当它在同一个文件中进行第二次更改(但是磁盘上的那个)并且在处理它时,内存中的旧文件将被更新的版本替换。因此,第一次更改已完成,但从未关闭/完成/转储回磁盘。
应该有一些机制来关闭'每次更改后的文件,但在ansible文档中没有看到它。任何人都知道吗?
我注意到同样的变化可以循环但不接受不同的2种不同类型的变化。
P.S。 - 同样可以通过使用不同的任务完成,但我不想使用(文件中可能需要15-20个更改,所以不要想要相同的数字,我试图在一个文件中进行2个不同的更改但是只有最后一次更改正在更新...看起来像ansible将文件保存在内存中(在第一次更改后)并且永远不会将其转储回磁盘,因为它知道根据.yml文件有更多的更改。因此,当它在同一个文件中(但在磁盘上)进行更改(第二个)并在处理它时,内存中的文件将被更新的版本替换。所以第一次更改已完成,但从未关闭/完成/转储回磁盘。 / p>
应该有一些机制来关闭'每次更改后的文件,但在ansible文档中没有看到它。谁知道? 首先更改 - 在文件中插入文本。 第二次更改 - 替换同一文件中的文本。
P.S。 - 同样可以通过使用不同的任务完成,但我不想使用(可能需要15-20个文件中的更改,因此不需要相同数量的任务)
答案 0 :(得分:0)
如果您在同一个文件上运行,则需要使用--forks=1
或-f 1
运行该剧本,如下所示:
ansible-playbook -i hosts playbook.yml --forks=1
默认值为5个分叉(或您在ansible.cfg中设置的任何分支)。那些叉子可以覆盖彼此的变化。