O módulo Ansible ini_file não cria seções quando nenhuma opção é especificada

O módulo Ansible ini_file não cria seções quando nenhuma opção é especificada

Eu uso o Ansible para criar arquivos de configuração no formato ini. Quando utilizo o ini_filemódulo com par de opção e valor ele funciona conforme o esperado, por exemplo:

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

Resultaria com:

[lol]
foo = bar

No entanto, quero que exista uma seção específica sem opções, assim:

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

Mas tudo o que faz é relatar oka tarefa e passar para a próxima.

Quando uso o modo detalhado, posso ver:ok: [localhost] => {"changed": false, "msg": "OK", "path": "/tmp/test.conf", "state": "absent"}

Como posso usar o módulo para criar seções sem opções?

Responder1

ini é um padrão informal, mas pelo que entendi não faz muito sentido uma seção sem opção. Esse seria meu primeiro palpite sobre por que isso não está implementado no Ansible.

Em vez de usar o ini-Module, sugiro usar omódulo lineinfilepara garantir que uma seção esteja presente em um arquivo ini.

Responder2

Para construir arquivos de configuração, vá com modelos, é uma maneira adequada. Use ini_fileo módulo apenas para editar arquivos. Tente evitar o módulo lineinfile, use-o como último recurso.

regra 0)Se possível, use o módulo de modelo, pois ele oferece controle e verificação total. Brian Coca (engenheiro de software sênior, Ansible, Red Hat.)

Responder3

A solução alternativa é não permitir nenhum valor, com código em branco/comentado na opção.

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

Mas se já houver valor em sua seção, você deverá removê-lo state: absentse quiser uma seção sem opções e valor. então adicione. Desculpe, mas também não encontrei uma resposta real.

informação relacionada