Spec-Zone.ru › Ansible

Модуль community.general.ini_file – Настройка параметров в файлах INI

Примечание

Этот модуль является частью коллекции community.general (версия 9.5.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить ее, используйте: ansible-galaxy collection install community.general.

Чтобы использовать ее в книге задач, укажите: community.general.ini_file.

  • Обзор
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Обзор

  • Управление (добавление, удаление, изменение) отдельных параметров в файле в формате INI, без необходимости управления файлом целиком с помощью, например, ansible.builtin.template или ansible.builtin.assemble.
  • Добавляет отсутствующие разделы, если они не существуют.
  • Этот модуль добавляет недостающие завершающие символы новой строки в файлы, чтобы соответствовать стандарту POSIX, даже когда не требуется никаких других изменений.

Параметры

Параметр

Комментарии

allow_no_value

boolean

Разрешить параметр без значения и без символа ‘=’.

Варианты:

  • false ← (по умолчанию)
  • true

attributes

псевдонимы: attr

строка

Атрибуты, которые должен иметь получившийся объект файловой системы.

Чтобы получить поддерживаемые флаги, см. страницу руководства для chattr на целевой системе.

Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr.

Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

backup

boolean

Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли восстановить исходный файл, если его неправильно перезаписали.

Варианты:

  • false ← (по умолчанию)
  • true

create

boolean

Если установлено значение false, модуль завершится с ошибкой, если файл уже не существует.

По умолчанию он создаст файл, если его нет.

Варианты:

  • false
  • true ← (по умолчанию)

exclusive

boolean

добавлено в community.general 3.6.0

Если установлено значение true (по умолчанию), все совпадающие строки option удаляются при state=absent, или заменяются при state=present.

Если установлено значение false, только указанные value/values добавляются при state=present, или удаляются при state=absent, и существующие не изменяются.

Варианты:

  • false
  • true ← (по умолчанию)

follow

boolean

добавлено в community.general 7.1.0

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

follow=true может изменять path при сочетании с такими параметрами, как mode.

Варианты:

  • false ← (по умолчанию)
  • true

group

строка

Имя группы, которой должен принадлежать объект файловой системы, как и в команде chown.

Если не указано, используется текущая группа текущего пользователя, за исключением случаев, когда вы являетесь root, в этом случае сохраняется предыдущее владение.

ignore_spaces

boolean

добавлено в community.general 7.5.0

Не изменять строку, если это добавит или удалит пробелы до или после символа =.

Варианты:

  • false ← (по умолчанию)
  • true

mode

любой

Права доступа, которые должен иметь получившийся объект файловой системы.

Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации, чтобы правильно их разобрать. Для согласованных результатов используйте восьмеричные числа в кавычках (например, '644' или '1777') так, чтобы Ansible получал строку и мог сам преобразовать её из строки в число. Иногда добавлять ведущий ноль (например, 0755) работает, но может завершиться ошибкой в циклах и некоторых других обстоятельствах.

Передача Ansible числа без соблюдения этих правил приведёт к десятичному числу, что приведёт к неожиданным результатам.

Начиная с Ansible 1.8, режим может быть указан в символическом виде (например, u+rwx или u=rw,g=r,o=r).

Если mode не указано, и целевой объект файловой системы не существует, по умолчанию будет использоваться значение umask системы при установке режима для нового объекта файловой системы.

Если mode не указано, и целевой объект файловой системы существует, будет использован режим существующего объекта файловой системы.

Указание mode — лучший способ гарантировать, что объекты файловой системы создаются с правильными правами доступа. См. CVE-2020-1736 для получения дополнительной информации.

modify_inactive_option

boolean

добавлено в community.general 8.0.0

По умолчанию модуль заменяет комментированную строку, которая соответствует заданному параметру.

Установите этот параметр в false чтобы этого избежать. Это полезно, когда вы хотите сохранить комментированные пары примеров key=value для документации.

Варианты:

  • false
  • true ← (по умолчанию)

no_extra_spaces

boolean

Не вставлять пробелы до и после символа ‘=’.

Варианты:

  • false ← (по умолчанию)
  • true

option

строка

Если задано (требуется для изменения value), это имя параметра.

Можно опустить, если добавляется/удаляется весь section.

owner

строка

Имя пользователя, которому должен принадлежать объект файловой системы, как и в команде chown.

Если не указано, используется текущий пользователь, за исключением случаев, когда вы являетесь root, в этом случае сохраняется предыдущее владение.

Указание числового имени пользователя будет интерпретироваться как идентификатор пользователя, а не имя пользователя. Избегайте числовых имён пользователей, чтобы избежать этой путаницы.

END_OF_DOCUMENT_MARKER

path

aliases: dest

путь / обязательно

Путь к файлу в стиле INI; этот файл создается при необходимости.

раздел

строка

Имя раздела в файле INI. Это добавляется, если state=present, автоматически, когда устанавливается единственное значение.

Если опущено, option будет помещено перед первым section.

Опущение section также необходимо, если формат конфигурации не поддерживает разделы.

section_has_values

список / элементы=словарь

добавлен в community.general 8.6.0

Среди возможных нескольких разделов с одинаковым именем, выбирается первый, содержащий соответствующие опции и значения.

С помощью state=present, если подходящий раздел не найден, будет добавлен новый раздел, включая необходимые опции.

С помощью state=absent, удаляется не более одного section, если он содержит значения.

option

строка / обязательно

Соответствующий section должен содержать эту опцию.

value

строка

Соответствующий section_has_values[].option должен иметь это конкретное значение.

values

список / элементы=строка

Строковое значение, которое должно быть связано с section_has_values[].option.

Взаимоисключающее с section_has_values[].value.

section_has_values[].value=v эквивалентно section_has_values[].values=[v].

selevel

строка

Часть уровня SELinux контекста объекта файловой системы.

Это атрибут MLS/MCS, иногда известный как range.

При установке в _default, используется часть политики level, если доступна.

serole

строка

Часть роли контекста объекта файловой системы SELinux.

При установке в _default, используется часть политики role, если доступна.

setype

строка

Часть типа контекста объекта файловой системы SELinux.

При установке в _default, используется часть политики type, если доступна.

seuser

строка

Часть пользователя контекста объекта файловой системы SELinux.

По умолчанию используется политика system, где применимо.

При установке в _default, используется часть политики user, если доступна.

state

строка

Если установлено absent и exclusive установлено true, все соответствующие option строки удаляются.

Если установлено absent и exclusive установлено false, указанные option=value строки удаляются, но другие option с тем же именем не трогаются.

Если установлено present и exclusive установлено false, указанные option=values строки добавляются, но другие option с тем же именем не трогаются.

Если установлено present и exclusive установлено true, все заданные option=values строки будут добавлены, а другие option с тем же именем удаляются.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

unsafe_writes

логическое

Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых объектов файловой системы, но иногда системы настроены или просто сломаны таким образом, что это невозможно. Одним примером являются контейнеры docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.

Эта опция позволяет Ansible переключаться на небезопасные методы обновления объектов файловой системы, когда атомарные операции завершаются неудачно (однако она не заставляет Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

value

строка

Строковое значение, которое должно быть связано с option.

Можно опустить при удалении option.

Взаимоисключающее с values.

value=v эквивалентно values=[v].

values

список / элементы=строка

добавлен в community.general 3.6.0

Строковое значение, которое должно быть связано с option.

Можно опустить при удалении option.

Взаимоисключающее с value.

value=v эквивалентно values=[v].

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в check_mode и возвращать прогноз о статусе изменений без изменения целевого объекта.

diff_mode

Поддержка: полная

Вернет подробности о том, что изменилось (или, возможно, должно измениться в check_mode), когда используется режим сравнения.

Примечания

Примечание

  • Хотя добавить option без указания value возможно, это не имеет смысла.
  • Начиная с версии community.general 3.2.0, маркеры BOM UTF-8 игнорируются при чтении файлов.

Примеры

- 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: true

- 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: true

- name: Add "beverage=lemon juice" is in section "[drinks]" in specified file
  community.general.ini_file:
    path: /etc/conf
    section: drinks
    option: beverage
    value: lemon juice
    mode: '0600'
    state: present
    exclusive: false

- name: Ensure multiple values "beverage=coke" and "beverage=pepsi" are in section "[drinks]" in specified file
  community.general.ini_file:
    path: /etc/conf
    section: drinks
    option: beverage
    values:
      - coke
      - pepsi
    mode: '0600'
    state: present

- name: Add "beverage=lemon juice" outside a section in specified file
  community.general.ini_file:
    path: /etc/conf
    option: beverage
    value: lemon juice
    state: present

- name: Remove the peer configuration for 10.128.0.11/32
  community.general.ini_file:
    path: /etc/wireguard/wg0.conf
    section: Peer
    section_has_values:
      - option: AllowedIps
        value: 10.128.0.11/32
    mode: '0600'
    state: absent

- name: Add "beverage=lemon juice" outside a section in specified file
  community.general.ini_file:
    path: /etc/conf
    option: beverage
    value: lemon juice
    state: present

- name: Update the public key for peer 10.128.0.12/32
  community.general.ini_file:
    path: /etc/wireguard/wg0.conf
    section: Peer
    section_has_values:
      - option: AllowedIps
        value: 10.128.0.12/32
    option: PublicKey
    value: xxxxxxxxxxxxxxxxxxxx
    mode: '0600'
    state: present

- name: Remove the peer configuration for 10.128.0.11/32
  community.general.ini_file:
    path: /etc/wireguard/wg0.conf
    section: Peer
    section_has_values:
      - option: AllowedIps
        value: 10.4.0.11/32
    mode: '0600'
    state: absent

- name: Update the public key for peer 10.128.0.12/32
  community.general.ini_file:
    path: /etc/wireguard/wg0.conf
    section: Peer
    section_has_values:
      - option: AllowedIps
        value: 10.4.0.12/32
    option: PublicKey
    value: xxxxxxxxxxxxxxxxxxxx
    mode: '0600'
    state: present

Авторы

  • Ян-Пьер Менс (@jpmens)
  • Алеш Носек (@noseka1)

Ссылки на сборник

  • Отслеживание ошибок
  • Репозиторий (исходники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Общение

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/ini_file_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API