43

これはかなり単純だと思います。私は次のlineinfileようにモジュールを使用しています:

- 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 を使用しています。

4

2 に答える 2

39

Ansible ディスカッション グループは、この問題を解決するのに役立ちました。問題はregexpパラメータです。

行をファイルに一度だけ追加したいので、正規表現を行にできるだけ一致させる必要があります。私の場合、私の行には変数が含まれているため、これは複雑です。しかし、行が開始したと仮定する[[ -s $HOME/.pythonbrewと、次で十分であることがわかりました。

- 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
于 2013-10-30T21:37:36.340 に答える