Ansible ini_file 模块:替换整个部分

Ansible ini_file 模块:替换整个部分

据我了解文档,我可以使用该模块通过仅指定值和省略值ini_file来替换 ini 文件的整个部分:sectionoption

- name: 'Set realms'
  ini_file:
    path: '/etc/krb5.conf'
    section: 'realms'
    value: |
      EXAMPLE.COM = {
        admin_server = adm.example.com
        kdc = kdc.example.com
      }

这将导致

[realms]
EXAMPLE.COM = {
  admin_server = adm.example.com
  kdc = kdc.example.com
}

删除节的原始内容[realms]。然而,这会导致

[realms]
None = EXAMPLE.COM = {
  admin_server = adm.example.com
  kdc = kdc.example.com
}

同时也不会删除该部分的原始内容。

我误解了文档吗?如果是,还有其他方法可以实现这一点吗?

答案1

@Rocreex 实际上你没有定义选项键。

- name: 'Set realms'
  ini_file:
    path: '/tmp/krb5.conf'
    section: 'realms'
    option: ' EXAMPLE.COM'
    value: | 
      ' {
         kdc = kerberos.example.com
         admin_server = kerberos.example.com
       } '

相关内容