我想在目录中为多个.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/
)目录的输出?
答案 0 :(得分:2)
首先,您似乎想要编辑ini文件,因此ini_file
模块更合适:
- 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上的外部循环中包含一个文件,并在包含的文件中进行配置。例如,inner_loop.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
This answer提出了另一种可能的解决方案,用于将循环项与循环遍历结合。