如何使用Ansible替换模块取消对行的注释?
普通配置文件在默认配置文件中注释掉设置是很常见的。比如说如何使用Ansible替换模块取消对行的注释?,ansible,ansible-2.x,Ansible,Ansible 2.x,普通配置文件在默认配置文件中注释掉设置是很常见的。比如说 #HEAP_SIZE=2g 在本例中,如何使用Ansible replace模块删除注释字符“#” - name: Uncomment out HEAP_SIZE replace: dest: //etc/some_path/app.conf replace="what to put here to remove #???" regex="#HEAP_SIZE=2g" 导致 HEAP_SIZE=2g 简单
#HEAP_SIZE=2g
在本例中,如何使用Ansible replace模块删除注释字符“#”
- name: Uncomment out HEAP_SIZE
replace:
dest: //etc/some_path/app.conf
replace="what to put here to remove #???"
regex="#HEAP_SIZE=2g"
导致
HEAP_SIZE=2g
简单地说:
replace: "HEAP_SIZE=2g"
您还需要确保它是从行的开头开始的
通常情况下,对于此用例,
lineinfle
模块更适合。您可以将lineinfle
用于您的任务:
- name: Uncomment parameters
lineinfile:
dest: app.conf
regexp: (?i)^\s*#\s*({{ item }}.*)
line: \1
backrefs: yes
with_items:
- heap_size
- aNoThEr_setting
我知道我可以这样做,但如果我有多行要替换,我必须为每行编写一个任务,并使用相应的替换值。我正在寻找可以删除“#”字符的东西。您考虑过将整个配置文件模板化吗?