我正在写一本Ansible手册,它将安装和配置我公司使用的某个监控系统的代理。
成功配置代理程序所需的步骤之一是将Nagios“log_rotation_method”配置为每日。
nagios.cfg
文件中的相关行是:
log_rotation_method=h
我希望Ansible更改为log_rotation_method=d
。
剧本的相关部分如下:
- name: Set Nagios rotation method to daily
replace: dest=/etc/nagios3/nagios.cfg regexp='log_rotation_method=h' replace='log_rotation_method=d'
在bash中我会写这样的东西:
sed -i 's/^log_rotation_method.*/log_rotation_method=d/g' nagios.cfg
但是我很难理解它应该如何用Ansible编写,这是基于Python的。
知道应该怎么写吗? 解释不仅仅是受欢迎的。
答案 0 :(得分:1)
我会用lineinfile做到这一点:
- lineinfile: dest=/etc/nagios3/nagios.cfg regexp='^log_rotation_method.*' line='log_rotation_method=d'
答案 1 :(得分:0)
你可以写一个与你在bash中写的东西非常相似的东西(它们最终都是正则表达式):
replace: dest=/etc/nagios3/nagios.cfg regexp='^log_rotation_method.*' replace='log_rotation_method=d'
它实际上应该以你写的方式工作。在正则表达式的情况下,它将匹配那个确切的字符串而不是多个。