在使用Ansible的替换模块时,如果需要重复替换值,可以使用with_items
参数结合loop
进行循环替换。
下面是一个示例代码:
- name: Replace multiple values in a file
replace:
path: /path/to/file
regexp: "{{ item.regexp }}"
replace: "{{ item.replace }}"
loop:
- { regexp: 'old_value1', replace: 'new_value1' }
- { regexp: 'old_value2', replace: 'new_value2' }
- { regexp: 'old_value3', replace: 'new_value3' }
在上面的示例中,replace
模块会依次替换/path/to/file
文件中的old_value1
、old_value2
和old_value3
为new_value1
、new_value2
和new_value3
。
你可以根据自己的需求添加更多的替换项。
另外,可以使用lineinfile
模块来实现行级别的替换。下面是一个示例代码:
- name: Replace multiple lines in a file
lineinfile:
path: /path/to/file
regexp: "{{ item.regexp }}"
line: "{{ item.replace }}"
loop:
- { regexp: 'line1', replace: 'new_line1' }
- { regexp: 'line2', replace: 'new_line2' }
- { regexp: 'line3', replace: 'new_line3' }
在上面的示例中,lineinfile
模块会依次查找/path/to/file
文件中的line1
、line2
和line3
,并替换为new_line1
、new_line2
和new_line3
。
希望以上解决方法对你有帮助!