【发布时间】:2019-04-29 17:27:24
【问题描述】:
我想根据某些条件(例如网络属性的更改)仅更新库存文件 /etc/ansible/hosts 中的一个条目。从我的库存文件的这个 sn-p 中,我想更新 [south_side_hosts] 下的条目。有没有办法用ansible更新这个文件?我可以编写一个 python 脚本来解析和更新文件,但希望能找到 ansible 的解决方案。
[south_side_hosts]
sshost.eng.corp.com
[south_side_ips]
192.168.100.2
[num_hosts]
83
【问题讨论】:
-
可能您可以为此使用replace 模块,但老实说,无论您的最终目标是什么,您的最终目标都是错误的。
-
这可能有点矫枉过正,因为您只需要更新一个条目,但是您是否摒弃了 working with dynamic inventory 的标准 Ansible 方式?
-
@larsks 感谢您的提示。我将使用替换模块。 Michal - 我简要地查看了动态库存,但仅更新文件中的一个条目似乎工作量太大。
-
@larsks 在不了解用例的情况下,我会保留这个判断,也是因为解决方案非常简单,并且 Ansible 提供了在播放期间刷新库存的机制。直接进入动态库存是相当大的变化。
-
欢迎大家发表自己的意见。我支持我,但我很高兴@linuxfan 找到了适合他们的解决方案。