我想编辑telegraf(系统指标收集代理)的配置文件.
Telegraf带有一个可以编辑的默认配置文件.其中定义了许多输入和输出插件,这些插件已注释掉,可以通过删除注释添加,也可以自定义.
我只想编辑那里定义的一些插件,而不是全部.例如,考虑这是文件,
[global]
interval='10s'
[outputs.influxdb]
host=['http://localhost:8086']
#[outputs.elasticsearch]
# host=['http://localhost:9200']
[inputs.netstat]
interface='eth0'
Run Code Online (Sandbox Code Playgroud)
现在,我想编辑3个块global,outputs.influxdb和inputs.netstat.我不想编辑,outputs.elasticsearch但也希望该块outputs.elasticsearch应保留在文件中.
当使用Ansible时,我首先使用了模板模块,但是如果我使用它,那么评论的数据将会丢失.
然后我使用ini_file模块,而不是编辑已经存在的块,它添加了一个新块,即使它已经存在,并导致类似这样的事情,
[outputs.influxdb]
host=[http://localhost:8086]
[outputs.influxdb]
host=[http://xx.xx.xx.xx:8086]
Run Code Online (Sandbox Code Playgroud)
哪个模块适用于我的场景?
根据您的目的,有几种选择.
该lineinfile -模块是最好的选择,如果你只是想添加,替换或删除一个行.
该更换 -模块是最好的,如果你想添加,替换或删除几行.
该blockinfile -模块可以添加几行,以标记包围.
如果您只想更改两行或三行,则可以使用lineinfile的多次调用.要更改整个配置文件,我建议,像评论者建议的那样,使用模板 - 模块.
| 归档时间: |
|
| 查看次数: |
6719 次 |
| 最近记录: |