Назад | Перейти на главную страницу

Модуль 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"}

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

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

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

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

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