El módulo ansible ini_file no crea secciones cuando no se especifican opciones

El módulo ansible ini_file no crea secciones cuando no se especifican opciones

Utilizo Ansible para crear archivos de configuración en formato ini. Cuando uso el ini_filemódulo con par de opción y valor, funciona como se esperaba, por ejemplo:

- name: Create configuration file
  ini_file:
    path: /tmp/test.conf
    state: present
    section: lol
    option: foo
    value: bar

Resultaría con:

[lol]
foo = bar

Sin embargo, quiero que exista una sección específica sin opciones, así:

- name: Create configuration file
  ini_file:
    path: /tmp/test.conf
    state: present
    section: lol

Pero lo único que hace es informar oksobre la tarea y pasar a la siguiente.

Cuando uso el modo detallado puedo ver:ok: [localhost] => {"changed": false, "msg": "OK", "path": "/tmp/test.conf", "state": "absent"}

¿Cómo puedo usar el módulo para crear secciones sin opciones?

Respuesta1

ini es un estándar informal, pero según tengo entendido, no tiene mucho sentido una sección sin una opción. Esa sería mi primera suposición de por qué esto no está implementado en Ansible.

En lugar de usar el ini-Module, sugeriría usar elmódulo de archivo de líneapara garantizar que una sección esté presente en un archivo ini.

Respuesta2

Para crear archivos de configuración, utilice plantillas, es una forma adecuada. Utilice ini_fileel módulo solo para editar archivos. Intente evitar el módulo lineinfile, utilícelo como último recurso.

regla 0)Si es posible, utilice el módulo de plantilla, ya que le brinda control y verificación totales. Brian Coca (ingeniero de software sénior, Ansible, Red Hat).

Respuesta3

La solución alternativa es no permitir ningún valor, con la opción de código en blanco o comentado.

- ini_file:
    dest: '/tmp/telegraf.conf'
    section: '[inputs.interrupts]'
    option: '  ## no configuration'
    allow_no_value: yes

Pero si ya hay un valor en su sección, debe eliminarlo state: absentsi desea una sección sin opciones ni valor. Luego añade. Lo siento, pero tampoco encontré una respuesta real.

información relacionada