assemble – Объединение конфигурационных файлов из фрагментов
Описание
- Объединяет конфигурационный файл из фрагментов.
- Часто определённая программа принимает один конфигурационный файл и не поддерживает структуру типа
conf.d, где удобно создавать конфигурацию из нескольких источников.assembleвозьмёт директорию файлов, которые могут быть локальными или уже перенесены в систему, и объединит их в один целевой файл. - Файлы объединяются в порядке сортировки строк.
- Puppet называет этот подход фрагментами.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должен иметь результирующий файл или директория. Список поддерживаемых флагов см. в мануале к команде chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и выводится командой lsattr. Оператор = принимается по умолчанию, в противном случае необходимо включить операторы + или - в строку.алиасы: attr | |
| backup логическое значение |
| Создать резервный файл (если yes), включая информацию о дате и времени, чтобы вы могли получить исходный файл, если вы каким-то образом его повредили. |
| decrypt логическое значение добавлен в версии 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| delimiter строка | Разделитель для разделения содержимого файла. | |
| dest путь / обязательно | Файл для создания путём конкатенации всех исходных файлов. | |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это подаётся команде chown. | |
| ignore_hidden логическое значение |
| Логическое значение, которое определяет, включать ли файлы, начинающиеся с точки '.'. |
| mode строка | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы парсер YAML Ansible понял, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') чтобы Ansible получил строку и мог выполнить собственное преобразование из строки в число.Если вы передадите Ansible число без выполнения одного из этих правил, в результате получится десятичное число, что приведёт к непредвиденным результатам. Начиная с Ansible 1.8, режим может быть задан в символьной форме (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, который должен владеть файлом/директорией, как это подаётся команде chown. | |
| regexp строка | Объединять файлы только если regex соответствует имени файла.Если не задано, объединяются все файлы. Каждый обратный слэш «\`» должен быть экранирован как «\\\\» для соответствия синтаксису YAML. Используются регулярные выражения Python. | |
| remote_src логическое значение |
| Если no, будет производиться поиск src на исходной/главной машине.Если yes, будет производиться поиск src на удалённой/целевой машине. |
| selevel строка | По умолчанию: "s0" | Часть контекста файла SELinux, отвечающая за уровень. Это атрибут MLS/MCS, иногда известный как range. При установке _default, будет использоваться часть политики level, если доступна. |
| serole строка | Часть контекста файла SELinux, отвечающая за роль. При установке _default, будет использоваться часть политики role, если доступна. | |
| setype строка | Часть контекста файла SELinux, отвечающая за тип. При установке _default, будет использоваться часть политики type, если доступна. | |
| seuser строка | Часть контекста файла SELinux, отвечающая за пользователя. По умолчанию используется политика system, где это возможно.При установке _default, будет использоваться часть политики user, если доступна. | |
| src путь / обязательно | Уже существующая директория, полная исходных файлов. | |
| unsafe_writes логическое значение |
| Влияние на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны так, что это невозможно. Одним из примеров являются файлы с монтированием docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются ошибкой (однако, он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate строка | Команда валидации для выполнения перед копированием на место. Путь к файлу для валидации передаётся через '%s', что должно быть присутствовать, как в примере sshd ниже. Команда передаётся безопасно, так что такие оболочковые функции, как расширение и конвейеры, не будут работать. |
См. также
См. также
- copy – Копирование файлов на удалённые места
- Официальная документация по модулю copy.
- template – Шаблонизация файла на удалённом сервере
- Официальная документация по модулю template.
- win_copy – Копирование файлов на удалённые места на хостах Windows
- Официальная документация по модулю win_copy.
Примеры
- name: Assemble from fragments from a directory
assemble:
src: /etc/someapp/fragments
dest: /etc/someapp/someapp.conf
- name: Inserted provided delimiter in between each fragment
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
assemble:
src: /etc/ssh/conf.d/
dest: /etc/ssh/sshd_config
validate: /usr/sbin/sshd -t -f %s
Статус
- Этот модуль гарантирует обратную совместимость изменений интерфейса в будущем. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительная информация о поддержке этого модуля Red Hat доступна в этой статье базы знаний Red Hat.
Авторы
- Stephen Fromm (@sfromm)
Подсказка
Если вы обнаружите какие-либо проблемы в данной документации, вы можете изменить этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/assemble_module.html