Я использую 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-файле.