3
私は.properties/.conf/.xml/.csvファイルを持っています。要件は、キーに一致し、そのキーがそのファイルに存在する場合にのみ値を置き換える必要があります。危険なLineinfile:キーを見つけ、値だけを置き換えてください
マイ.propertiesファイルには、以下
name=newname
surname=newname
、以下のようになります。私のkey_value.ymlファイル
以下---
properties:
- { name: name, value: jon}
- { name: surname, value: miller }
は同じことを行うための私のansibleタスクです。
---
- name: Find and replace
lineinfile:
dest: /tmp/example/example.properties
regexp: "{{ item.name }}"
line: "{{ item.value }}"
inserafter: '{{ item.name }}='
backrefs: yes
state: present
with_items:
- "{{ properties }}"
しかし、これは動作していないようです。その行全体が置き換えられます。助けてください!行のキーを含む
[ドキュメント](http://docs.ansible.com/ansible/lineinfile_module.html)をよくお読みください。 'insertafter'と' line'はあなたが使う方法ではありません。私は[置換](http://docs.ansible.com/ansible/replace_module.html)モジュールを選択するべきだと思います。そして、裏返しを使用して交換ラインを作ります。 –
"*。.properties/.conf/.xml/.csvファイル*"これは広すぎます。あなたはすべてのタイプの普遍的なタスクを取得しません。 – techraf