community.general.ini_file – Настройка параметров в файлах INI
Примечание
Этот плагин входит в сборку community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в книге задач укажите: community.general.ini_file.
Описание
- Управление (добавление, удаление, изменение) отдельных параметров в файле в формате INI без необходимости управления файлом в целом, например, с помощью ansible.builtin.template или ansible.builtin.assemble.
- Добавляет отсутствующие разделы, если они не существуют.
- До Ansible 2.0 комментарии игнорировались при чтении исходного файла и, следовательно, не отображались в целевом файле.
- Начиная с Ansible 2.3, этот модуль добавляет недостающие завершающие символы новой строки в файлы, чтобы соответствовать стандарту POSIX, даже если не требуется никаких других изменений.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_no_value логический |
| Разрешить опцию без значения и без символа '='. |
| attributes строка добавлено в 2.3 ansible.builtin | Атрибуты, которые должен иметь результирующий файл или каталог. Чтобы получить поддерживаемые флаги, см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.псевдонимы: attr | |
| backup логический |
| Создать резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл, если вы случайно его испортили. |
| create логический |
| Если установлено no, модуль завершится неудачей, если файл еще не существует.По умолчанию файл будет создан, если его нет. |
| group строка | Имя группы, которой должен принадлежать файл/каталог, как передается в chown. | |
| mode сырой | Разрешения, которые должен иметь результирующий файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы интерпретатор YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') чтобы Ansible получил строку и мог выполнить преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к непредвиденным результатам. Начиная с Ansible 1.8, режим может быть задан как символический режим (например, u+rwx или u=rw,g=r,o=r).Если mode не указано, а целевой файл не существует, по умолчанию используется umask на системе при установке режима для вновь созданного файла.Если mode не указано, а целевой файл существует, будет использоваться режим существующего файла.Указание mode — лучший способ гарантировать, что файлы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительных сведений. | |
| no_extra_spaces логический |
| Не вставлять пробелы перед и после символа '='. |
| option строка | Если задано (требуется для изменения значения), это имя параметра. Можно опустить, если добавляется/удаляется весь раздел. | |
| owner строка | Имя пользователя, которому должен принадлежать файл/каталог, как передается в chown. | |
| path путь / требуется | Путь к файлу в формате INI; этот файл создается при необходимости. До Ansible 2.3 этот параметр был доступен только как dest. псевдонимы: dest | |
| section строка / требуется | Имя раздела в файле INI. Он добавляется автоматически, когда задается единственное значение. Если оставлено пустым или установлено в null, параметр будет помещен перед первым разделом.Использование null также требуется, если формат конфигурации не поддерживает разделы. | |
| selevel строка | Часть SELinux контекста файла (уровень). Это атрибут MLS/MCS, иногда известный как range. Если установлено на _default, используется часть политики level, если она доступна. | |
| serole строка | Часть SELinux контекста файла (роль). Если установлено на _default, используется часть политики role, если она доступна. | |
| setype строка | Часть SELinux контекста файла (тип). Если установлено на _default, используется часть политики type, если она доступна. | |
| seuser строка | Часть SELinux контекста файла (пользователь). По умолчанию используется политика system, где это применимо.Если установлено на _default, используется часть политики user, если она доступна. | |
| state строка |
| Если установлено на absent, параметр или раздел будут удалены, если они присутствуют, вместо создания. |
| unsafe_writes логический добавлено в 2.2 ansible.builtin |
| Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто работают таким образом, что это невозможно. Примером является подключенный через Docker файл, который не может быть обновлен атомарно изнутри контейнера и может быть записан только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (однако, он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонок и могут привести к повреждению данных. |
| value строка | Строковое значение, которое будет ассоциировано с параметром. Можно опустить при удалении параметра. |
Примечания
Примечание
- Можно добавить параметр без указания значения, но это не имеет смысла.
- Начиная с Ansible 2.3, параметр dest изменен на path по умолчанию, но dest по-прежнему работает.
Примеры
# Before Ansible 2.3, option 'dest' was used instead of 'path'
- name: Ensure "fav=lemonade is in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/conf
section: drinks
option: fav
value: lemonade
mode: '0600'
backup: yes
- name: Ensure "temperature=cold is in section "[drinks]" in specified file
community.general.ini_file:
path: /etc/anotherconf
section: drinks
option: temperature
value: cold
backup: yes
Авторы
- Ян-Пит Менс (@jpmens)
- Алес Носек (@noseka1)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/ini_file_module.html