首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ansible更新/etc/ansible/hosts

使用ansible更新/etc/ansible/hosts
EN

Stack Overflow用户
提问于 2019-04-30 01:27:24
回答 1查看 699关注 0票数 2

我只想更新清单文件/etc/ansible/hosts中的一个条目,这取决于某些条件(例如,网络属性的变化)。根据清单文件的这段代码,我想更新[south_side_hosts]下的条目。有没有办法,用ansible来更新这个文件?我可以写一个python脚本来解析和更新文件,但我希望能用ansible找到一个解决方案。

代码语言:javascript
复制
[south_side_hosts]
sshost.eng.corp.com

[south_side_ips]
192.168.100.2

[num_hosts]
83
EN

回答 1

Stack Overflow用户

发布于 2019-04-30 03:36:06

清单文件的格式为INI,如in the documentation所述。

这样ini_file module就可以工作了。使用allow_no_value: true和两个任务删除旧的“选项”并添加新的“选项”:

代码语言:javascript
复制
- name: Remove host from 'south_side_hosts' group
  ini_file:
    path: /etc/ansible/hosts
    section: south_side_hosts
    option: sshost.eng.corp.com
    state: absent

- name: Add host to 'south_side_hosts' group
  ini_file:
    path: /etc/ansible/hosts
    section: south_side_hosts
    option: sshost2.eng.corp.com
    allow_no_value: true

如果您想从同一行动手册中配置新主机,则需要在此之后刷新清单:

代码语言:javascript
复制
- name: Refresh the inventory
  meta: refresh_inventory

请注意,如果您打算使用在命令行传递的随机主机名执行此操作,那么从长远来看,动态清单可能确实是您所需要的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55908213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档