如何使用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

我知道我可以这样做,但如果我有多行要替换,我必须为每行编写一个任务,并使用相应的替换值。我正在寻找可以删除“#”字符的东西。您考虑过将整个配置文件模板化吗?