2016-04-07 9 views
0

私は、私の会社が使用するいくつかの監視システムのエージェントをインストールして設定するAnsibleプレイブックを書いています。 エージェントの正常な設定に必要な手順の1つは、Nagiosの "log_rotation_method"を毎日設定することです。 nagios.cfgの関連行は log_rotation_method=hです。log_rotation_method=dに変更することはできません。私はこのような何か書くとbashでAnsibleプレイブック内の検索と置換の正しい構文は何ですか?

- 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 

をしかし、私はそれがどうあるべきかを理解に苦労してい

脚本の関連部分は、そうのようになります。 PythonベースのAnabilitiesで書かれています。

どのように書かれていますか? 説明は歓迎される以上のものです。

私はlineinfileていることだろう
+0

regexp = '(?m)^ log_rotation_method。*' replace = 'log_rotation_method = d''(または'(?m) 'を削除してください) –

+0

noteどのように書くべきかは 'テンプレート'に書かれています。 'lineinfile'モジュールは、残りのnagios設定が管理されていることを保証していないことを意味します。 – tedder42

答えて

0

あなたはbashで書くと何に非常によく似たものを(彼らは最終的には両方の正規表現です)を書くことができますあなたが書いたのと同じように実際に動作するはずです。正規表現の場合は、複数の代わりに正確な文字列に一致します。

1

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

- lineinfile: dest=/etc/nagios3/nagios.cfg regexp='^log_rotation_method.*' line='log_rotation_method=d' 
関連する問題