ini_file – Настройка параметров в файлах INI
Описание
- Управление (добавление, удаление, изменение) отдельных параметров в файле в формате INI без необходимости управления файлом целиком, например, с модулями template или assemble.
- Добавляет отсутствующие секции, если они не существуют.
- Перед Ansible 2.0 комментарии игнорировались при чтении исходного файла и, следовательно, не отображались в целевом файле.
- Начиная с Ansible 2.3, этот модуль добавляет отсутствующие завершающие символы новой строки в файлы, чтобы соответствовать стандарту POSIX, даже когда не требуется применение других изменений.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| allow_no_value логический тип добавлен в 2.6 |
| Разрешить опцию без значения и без символа '='. |
| attributes строка добавлен в 2.3 | Атрибуты, которые должен иметь результирующий файл или директория. Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup логический тип |
| Создать резервный файл, включая информацию о времени, чтобы получить исходный файл, если вы каким-то образом неправильно его перезаписали. |
| create логический тип добавлен в 2.2 |
| Если установлено значение no, модуль завершится неудачей, если файл еще не существует.По умолчанию файл будет создан, если он отсутствует. |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как и в команде chown. | |
| mode строка | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог самостоятельно преобразовать ее в число.Если Ansible получит число без одного из этих правил, это будет десятичное число, что приведет к непредвиденным результатам. Начиная с Ansible 1.8, режим может быть указан в символическом виде (например, u+rwx или u=rw,g=r,o=r). | |
| no_extra_spaces логический тип добавлен в 2.1 |
| Не вставлять пробелы перед и после символа '='. |
| option строка | Если установлено (необходимо для изменения значения), это имя опции. Можно опустить, если добавляется/удаляется вся секция. | |
| others строка | Все аргументы, принимаемые модулем file, также работают здесь. | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как и в команде chown. | |
| path путь / обязательный | Путь к файлу в формате INI; этот файл создаётся при необходимости. Перед Ansible 2.3 этот параметр был доступен только как dest. псевдонимы: dest | |
| section строка / обязательный | Имя секции в файле INI. Это автоматически добавляется, когда устанавливается единственное значение. Если оставлено пустым или установлено в null, option будет помещено перед первой секцией.Использование null также необходимо, если формат конфигурации не поддерживает секции. | |
| selevel строка | По умолчанию: "s0" | Часть уровня 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 |
| Влияние на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются смонтированные файлы 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
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
ini_file:
path: /etc/anotherconf
section: drinks
option: temperature
value: cold
backup: yes
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Ян-Пьет Менс (@jpmens)
- Алеш Носек (@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.8/modules/ini_file_module.html