Ansible Lineinfile:查找一个键并仅替换该值

Ansible Lineinfile:查找一个键并仅替换该值,ansible,ansible-playbook,ansible-2.x,Ansible,Ansible Playbook,Ansible 2.x,我有一个.properties/.conf/.xml/.csv文件。要求是我需要匹配一个键,并且仅当该键存在于该文件中时才替换该值 我的.properties文件如下所示 name=newname surname=newname 下面是我的key_value.yml文件 --- properties: - { name: name, value: jon} - { name: surname, value: miller } 下面是我做同样事情的责任 --- - name: Find an

我有一个.properties/.conf/.xml/.csv文件。要求是我需要匹配一个键,并且仅当该键存在于该文件中时才替换该值

我的.properties文件如下所示

name=newname
surname=newname
下面是我的key_value.yml文件

---
properties:
- {  name: name, value: jon}
- { name: surname, value: miller }
下面是我做同样事情的责任

---
- 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 }}"

但这似乎不起作用。它取代了整个生产线。请帮忙

尝试在行中包含键:

---
- name: Find and replace
  lineinfile:
    dest: /tmp/example/example.properties
    regexp: "{{ item.name }}"
    line: "{{ item.name }}={{ item.value }}"
    backrefs: yes
    state: present
  with_items:
    - "{{ properties }}"
请仔细阅读报告
insertafter
line
的工作方式与您尝试使用的方式不同。我认为你应该选择模块。并使用backrefs创建替换行。“a.properties/.conf/.xml/.csv文件”太宽了。您不会得到所有类型的通用任务。