使用ansible向目录中的多个文件添加多行

使用ansible向目录中的多个文件添加多行,ansible,insertafter,Ansible,Insertafter,我想在目录中的多个.conf文件中添加一些行,例如/etc/abc/xabc/ 我想补充的两行内容如下: Composite=1 Extension=1 我希望这些行出现在包含[protocol]的行之后 我该怎么做 我不知道如何处理这件事;请参见下面我的尝试-尽管我知道这是错误的: - name: add line - lineinfile: dest: "{{ item }}" regexp: "{{ item.regexp }}" line: "{{ item.

我想在目录中的多个.conf文件中添加一些行,例如
/etc/abc/xabc/

我想补充的两行内容如下:

Composite=1
Extension=1
我希望这些行出现在包含
[protocol]
的行之后

我该怎么做

我不知道如何处理这件事;请参见下面我的尝试-尽管我知道这是错误的:

- name: add line

- lineinfile:
    dest: "{{ item }}"
    regexp: "{{ item.regexp }}"
    line: "{{ item.line }}"
    insertafter: [Protocol]
  with_items: xxxxxx

我假设我还必须注册(
/etc/abc/xabc/
)目录的输出?

首先,看起来您想要编辑ini文件,因此该模块更合适:

- ini_file:
    dest: /path/to/destination/file.ini
    section: Protocol
    option: "{{ item.option }}"
    value: "{{ item.value }}"
  with_items:
    - { option: Composite, value: 1 }
    - { option: Extension, value: 1 }
其次,看起来您想要使用嵌套循环。为了清楚起见,我将在目标目录的fileglob上的外部循环中包含一个文件,并在包含的文件中进行配置。例如,
内部循环.yml

- ini_file:
    dest: "{{ destination_file }}"
    section: Protocol
    option: "{{ item.option }}"
    value: "{{ item.value }}"
  with_items:
    - { option: Composite, value: 1 }
    - { option: Extension, value: 1 }
和外部:

- include: inner_loop.yml
  with_fileglob:
    - /etc/abc/xabc/*
  loop_control:
    loop_var: destination_file
提出了另一种可能的解决方案,用于将循环项与循环全局项相结合