ansible.builtin.assemble – Объединение файлов конфигурации из фрагментов
Примечание
Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев, можно использовать короткое имя модуля assemble, даже не указывая ключевое слово collections:. Несмотря на это, рекомендуется использовать полное имя класса (FQCN) для удобной ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же самое имя модуля.
Новое в версии 0.5: модуля ansible.builtin
Обзор
- Объединяет файл конфигурации из фрагментов.
- Часто определённая программа использует единственный файл конфигурации и не поддерживает структуру типа
conf.d, где легко построить конфигурацию из нескольких источников. Модульassembleвозьмёт каталог файлов, которые могут быть локальными или уже переведены на систему, и склеит их вместе, чтобы создать целевой файл. - Файлы объединяются в порядке сортировки строк.
- Puppet использует этот подход под названием фрагменты.
Примечание
У этого модуля есть соответствующий плагин действия.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в версии 2.3 ansible.builtin | Атрибуты, которые должен иметь результирующий файл или каталог. Для получения поддерживаемых флагов см. страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображается lsattr. Оператор = принимается по умолчанию, в противном случае операторы + или - должны быть включены в строку.алиасы: attr | |
| backup булево |
| Создать резервную копию файла (если yes), включая информацию о времени создания, чтобы вы могли вернуть исходный файл, если вы каким-то образом его неправильно перезаписали. |
| decrypt булево добавлен в версии 2.4 ansible.builtin |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью хранилища vault. |
| delimiter строка добавлен в версии 1.4 ansible.builtin | Разделитель для разделения содержимого файла. | |
| dest путь / обязательный | Файл, который должен быть создан путём объединения всех исходных файлов. | |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как если бы это было передано в chown. | |
| ignore_hidden булево добавлен в версии 2.0 ansible.builtin |
| Булево значение, которое управляет включением или выключением файлов, начинающихся с '.'. |
| 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 для получения дополнительных подробностей. | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как если бы это было передано в chown. | |
| regexp строка | Объединять файлы только если regex соответствует имени файла.Если не указано, объединяются все файлы. Каждый символ "\" (обратный слэш) должен быть экранирован как "\\", чтобы соответствовать синтаксису YAML. Используются Python регулярные выражения. | |
| remote_src булево добавлен в версии 1.4 ansible.builtin |
| Если no, будет производиться поиск src на исходной/главной машине.Если yes, будет производиться поиск src на удалённой/целевой машине. |
| selevel строка | Часть контекста SELinux файла, отвечающая за уровень. Это атрибут MLS/MCS, иногда известный как range. Если установлено значение _default, будет использоваться часть политики level, если она доступна. | |
| serole строка | Часть контекста SELinux файла, отвечающая за роль. Если установлено значение _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть контекста SELinux файла, отвечающая за тип. Если установлено значение _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть контекста SELinux файла, отвечающая за пользователя. По умолчанию используется политика system, где применимо.Если установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| src путь / обязательный | Уже существующий каталог с исходными файлами. | |
| unsafe_writes булево добавлен в версии 2.2 ansible.builtin |
| Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Один из примеров — файлы с монтированием Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible переходить к небезопасным методам обновления файлов, когда атомарные операции терпят неудачу (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонок и могут привести к повреждению данных. |
| validate строка добавлен в версии 2.0 ansible.builtin | Команда валидации, которая должна быть выполнена перед копированием в целевое место. Путь к файлу для валидации передаётся через '%s', что должно быть присутствовать, как в примере с sshd ниже. Команда передаётся безопасно, поэтому такие функции оболочки, как расширение и конвейеры, не будут работать. |
См. также
См. также
- ansible.builtin.copy
-
Официальная документация модуля ansible.builtin.copy.
- ansible.builtin.template
-
Официальная документация модуля ansible.builtin.template.
- ansible.windows.win_copy
-
Официальная документация модуля ansible.windows.win_copy.
Примеры
- name: Assemble from fragments from a directory
ansible.builtin.assemble:
src: /etc/someapp/fragments
dest: /etc/someapp/someapp.conf
- name: Insert the provided delimiter between fragments
ansible.builtin.assemble:
src: /etc/someapp/fragments
dest: /etc/someapp/someapp.conf
delimiter: '### START FRAGMENT ###'
- name: Assemble a new "sshd_config" file into place, after passing validation with sshd
ansible.builtin.assemble:
src: /etc/ssh/conf.d/
dest: /etc/ssh/sshd_config
validate: /usr/sbin/sshd -t -f %s
Авторы
- Stephen Fromm (@sfromm)
© 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/ansible/builtin/assemble_module.html