Я пишу Ansible playbook, который будет устанавливать и настраивать агента некоторой системы мониторинга, которую использует моя компания. Одним из шагов, необходимых для успешной настройки агента, является ежедневная настройка Nagios «log_rotation_method». Соответствующая строка в файле nagios.cfg
является: log_rotation_method=h
, который я хотел бы, чтобы Ansible изменился на log_rotation_method=d
.Каков правильный синтаксис для поиска и замены в Ansible playbook?
Соответствующая часть пьес выглядит так:
- name: Set Nagios rotation method to daily
replace: dest=/etc/nagios3/nagios.cfg regexp='log_rotation_method=h' replace='log_rotation_method=d'
В Баш я хотел бы написать что-то вроде этого:
sed -i 's/^log_rotation_method.*/log_rotation_method=d/g' nagios.cfg
Но я с трудом понимая, как это должно быть написанный в Ansible, который основан на Python.
Любая идея, как это должно быть написано? Объяснение было бы более чем приветствованным.
Попробуйте заменить: dest =/etc/nagios3/nagios.cfg regexp = '(? M)^log_rotation_method. *' Replace = 'log_rotation_method = d'' (или с '(? M)' удален) –
note что, как это должно быть **, должно быть написано в «шаблоне». Модуль 'lineinfile' означает, что вы не обеспечиваете управление остальной конфигурацией nagios. – tedder42