community.general.ini_file – Настройка параметров в файлах INI
Примечание
Этот плагин входит в коллекцию community.general (версия 1.3.2).
Для установки используйте: 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 boolean |
| Разрешить опцию без значения и без символа '='. |
| attributes строка добавлено в 2.3 ansible.builtin | Атрибуты, которые должен иметь результирующий файл или директория. Для получения поддерживаемых флагов обратитесь к справке man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup boolean |
| Создать резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл, если вы каким-то образом его неправильно перезаписали. |
| create boolean |
| Если установлено значение no, модуль завершится неудачей, если файла еще нет.По умолчанию файл будет создан, если его нет. |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это передается в chown. | |
| mode raw | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы интерпретатор YAML Ansible понимал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и выполнил собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к неожиданным результатам. Начиная с Ansible 1.8, режим может быть указан в виде символического режима (например, u+rwx или u=rw,g=r,o=r). | |
| no_extra_spaces boolean |
| Не вставлять пробелы перед и после символа '='. |
| option строка | Если установлено (необходимо для изменения значения), это имя опции. Может быть опущено при добавлении/удалении всего раздела. | |
| owner строка | Имя пользователя, который должен владеть файлом/директорией, как это передается в chown. | |
| path путь / обязательно | Путь к INI-файлу; этот файл создается по мере необходимости. До Ansible 2.3 этот параметр можно было использовать только как dest. псевдонимы: dest | |
| section строка / обязательно | Имя раздела в файле INI. Это добавляется автоматически при установке единственного значения. Если оставлен пустым или установлен на значение null, option будет помещен перед первым разделом.Использование 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 boolean добавлено в 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
Авторы
- Jan-Piet Mens (@jpmens)
- Ales Nosek (@noseka1)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/ini_file_module.html