2013-10-30 23 views
25

これはかなり簡単だと思います。私はそうのようなlineinfileモジュールを使用しています:In Ansibleでは、ファイルの最後に行を追加するにはどうすればよいですか?

- name: Update bashrc for PythonBrew for foo user 
    lineinfile: 
    dest=/home/foo/.bashrc 
    backup=yes 
    line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}" 
    owner=foo 
    regexp='^' 
    state=present 
    insertafter=EOF 
    create=True 

私がいる問題は、それが私の新しい行に(fiです)ファイルの最後の行を置き換えるのではなく行を追加するということです。これにより、構文エラーが発生します。

パラメータは正しいですか?私は'^'''(空白)の両方にregexpを設定しようとしました。これについて別の方法がありますか?

私はAnsible 1.3.3を使用しています。

答えて

27

The Ansible discussion group私はこれを整理するのに役立ちました。問題はregexpパラメータです。

私は一度ファイルに追加された行だけを望んでいるので、できるだけ近くに行を一致させるためには正規表現が必要です。私の場合、変数に変数が含まれているため、これは私の場合は複雑です。しかし、ラインが[[ -s $HOME/.pythonbrewを始め、私は次のように十分であることが見出さ仮定:どうやらansible

- name: Update bashrc for PythonBrew for foo user 
    lineinfile: 
    dest=/home/foo/.bashrc 
    line="[[ -s ${pythonbrew.bashrc_path} ]] && source ${pythonbrew.bashrc_path}" 
    regexp="^\[\[ -s \\$HOME/\.pythonbrew" 
    owner=foo 
    state=present 
    insertafter=EOF 
    create=True 
4

documentationによると、今(> 2.4.0バージョン)を成熟した、唯一のラインが指定されているデフォルトは意志指定された行を目的のファイルに追加します。

- name: Update bashrc for PythonBrew for foo user 
     lineinfile: 
     dest=/home/foo/.bashrc 
     line="[[ -s ${pythonbrew.bashrc_path} ]] && source {pythonbrew.bashrc_path}" 
     owner=foo 
+2

あなたは将来から戻っていますか?安定した安定は2.4であり、開発者は2.5 ... 2.9は2018-2019年にリリースされる可能性が高い。 – sorin

+0

ありがとうございました@ソリン私は未来から戻るだけでなく、私はConnorさんを探しています – shlomoa

関連する問題