Модуль Ansible ini_file не создает разделы, если не указаны параметры

Я использую Ansible для создания файлов конфигурации в формате ini. Когда я использую модуль ini_file с парой параметров и значений, он работает так, как ожидалось, например:

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

В результате:

[lol]
foo = bar

Однако я хочу, чтобы определенный раздел существовал без параметров в нем, например :

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

Но все, что он делает, это сообщает ok о задаче и переходит к следующей.

Когда я использую подробный режим, я вижу: ok: [localhost] => { "changed": false, "msg": "OK", "path": "/tmp/test.conf", "state": "absent"}

Как я могу использовать модуль для создания разделов без параметров ?

0
задан 21 March 2018 в 14:53
3 ответа

ini - неофициальный стандарт, но, насколько я понимаю, нет особого смысла в разделе без опции. Это будет мое первое предположение, почему это не реализовано в Ansible.

Вместо того, чтобы использовать ini -модуль, я бы предложил использовать модуль lineinfile , чтобы гарантировать, что раздел присутствует в ini-файле.

0
ответ дан 5 December 2019 в 06:22

Для создания файлов конфигурации используйте шаблоны, это правильный способ. Используйте модуль ini_file только для редактирования файлов. Старайтесь избегать использования модуля lineinfile, используйте его в крайнем случае.

правило 0) Если возможно, используйте вместо этого модуль шаблона, это дает вам полный контроль и проверка. Брайан Кока (старший инженер-программист, Ansible, Red Hat)

0
ответ дан 5 December 2019 в 06:22

обходным решением является использование без значения, с пустым/комментарным кодом в опции.

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

Но если в вашем разделе уже есть значение, вы должны удалить его состоянием: отсутствует, если вы хотите раздел без параметров и значения. затем добавьте. Извините, но я также не нашел реального ответа.

0
ответ дан 27 May 2021 в 12:32

Теги

Похожие вопросы