2016-04-07 17 views
0

Şirketimin kullandığı bazı izleme sistemlerinin bir aracısını kuracak ve yapılandıracak Ansible bir oyun kitabı yazıyorum. Aracının başarılı yapılandırılması için gerekli adımlardan biri, günlük olarak "log_rotation_method" Nagios'u yapılandırmaktır. nagios.cfg dosyasındaki ilgili satır: log_rotation_method=h Ansible'ınnumaralı telefona değiştirilmesini istiyorum. Böyle bir şey yazardı bash iseAnsible bir oynatma kitabında arama ve değiştirme için doğru sözdizimi nedir?

- 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 

Ama bunun nasıl olması gerektiğini anlamak zor anlar yaşıyorum

başucu kitabının ilgili bölümü öylesine benziyor Python merkezli Ansible ile yazılmış.

Nasıl yazılacağı hakkında bir fikrin var mı? Bir açıklama memnuniyetle karşılanacaktır.

replace: dest=/etc/nagios3/nagios.cfg regexp='^log_rotation_method.*' replace='log_rotation_method=d' 

: (onlar sonunda her iki İfadelerinin konum)

- lineinfile: dest=/etc/nagios3/nagios.cfg regexp='^log_rotation_method.*' line='log_rotation_method=d' 
+0

Denemeyi deneyin: dest =/etc/nagios3/nagios.cfg regexp = '(? M)^log_rotation_method. *' Replace = 'log_rotation_method = d'' (veya '(? M)' kaldırılmış) –

+0

not ** nasıl ** yazılmalı diye bir 'şablon'da. 'Lineinfile' modülü, nagios yapılandırmanızın geri kalanının yönetildiğinden emin olmamanız anlamına gelir. – tedder42

cevap

0

Sen bash yazardım ne çok benzer bir şey yazabilirsiniz:

1

Ben lineinfile ile yapacağını Yazdığınız gibi bile çalışmalı. Bir regex söz konusu olduğunda, sadece bu tam dizgiyi çoklu yerine eşleştirir.

İlgili konular