community.general.archive – Создаёт сжатый архив одного или нескольких файлов или каталогов
Примечание
Этот плагин входит в сборку community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.archive.
Обзор
- Создаёт или дополняет архив.
- Исходные данные и архив находятся на удалённом хосте, и архив не копируется на локальный хост.
- Файлы-источники можно удалить после архивирования, указав remove=True.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в 2.3 ansible.builtin | Атрибуты, которые должны быть у полученного файла или каталога. Для получения поддерживаемых флагов смотрите страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображается командой lsattr. Оператор = принимается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| dest путь | Имя файла архива назначения. Родительская директория должна существовать на удалённом хосте. Это необходимо, когда path ссылается на несколько файлов, указав шаблон, директорию или список путей. | |
| exclude_path список / элементы=путь | Абсолютный путь, шаблон или список путей или шаблонов на удалённом хосте для исключения из списка path и расширения шаблонов. | |
| force_archive булево |
| Позволяет принудительно обрабатывать этот модуль как архив, даже если указан только один файл. По умолчанию сохраняется поведение. То есть, при указании одного файла, он сжимается, а не архивируется. |
| format строка |
| Тип сжатия. Поддержка xz была добавлена в Ansible 2.5. |
| group строка | Имя группы, которой должен принадлежать файл/каталог, как передаётся в chown. | |
| mode сырой | Права доступа, которые должен иметь полученный файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вам нужно либо добавить ведущую ноль, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (как 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. | |
| path список / элементы=путь / необходимый | Абсолютный путь, шаблон или список путей или шаблонов на удалённом хосте для сжатия или архивирования файлов. | |
| remove булево |
| Удалить все добавленные файлы и каталоги-источники после добавления в архив. |
| selevel строка | Часть уровня SELinux файла контекста. Это атрибут MLS/MCS, иногда называемый range. Когда установлено _default, будет использоваться часть политики level, если она доступна. | |
| serole строка | Часть роли SELinux файла контекста. Когда установлено _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть типа SELinux файла контекста. Когда установлено _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть пользователя SELinux файла контекста. По умолчанию используется политика system, если применимо.Когда установлено _default, будет использоваться часть политики user, если она доступна. | |
| unsafe_writes булево добавлен в 2.2 ansible.builtin |
| Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию данный модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто не работают таким образом, что это не возможно. Одним из примеров являются файлы, смонтированные с помощью docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible использовать небезопасные методы обновления файлов, когда атомарные операции завершаются неудачно (хотя это не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных. |
Примечания
Примечание
- Требуются пакеты tarfile, zipfile, gzip и bzip2 на целевом хосте.
- Требуются пакеты lzma или backports.lzma при использовании формата xz.
- Может создавать сжатые файлы или архивы в формате gzip, bzip2, lzma и zip.
См. также
См. также
- ansible.builtin.unarchive
-
Официальная документация по модулю ansible.builtin.unarchive.
Примеры
- name: Compress directory /path/to/foo/ into /path/to/foo.tgz
community.general.archive:
path: /path/to/foo
dest: /path/to/foo.tgz
- name: Compress regular file /path/to/foo into /path/to/foo.gz and remove it
community.general.archive:
path: /path/to/foo
remove: yes
- name: Create a zip archive of /path/to/foo
community.general.archive:
path: /path/to/foo
format: zip
- name: Create a bz2 archive of multiple files, rooted at /path
community.general.archive:
path:
- /path/to/foo
- /path/wong/foo
dest: /path/file.tar.bz2
format: bz2
- name: Create a bz2 archive of a globbed path, while excluding specific dirnames
community.general.archive:
path:
- /path/to/foo/*
dest: /path/file.tar.bz2
exclude_path:
- /path/to/foo/bar
- /path/to/foo/baz
format: bz2
- name: Create a bz2 archive of a globbed path, while excluding a glob of dirnames
community.general.archive:
path:
- /path/to/foo/*
dest: /path/file.tar.bz2
exclude_path:
- /path/to/foo/ba*
format: bz2
- name: Use gzip to compress a single archive (i.e don't archive it first with tar)
community.general.archive:
path: /path/to/foo/single.file
dest: /path/file.gz
format: gz
- name: Create a tar.gz archive of a single file.
community.general.archive:
path: /path/to/foo/single.file
dest: /path/file.tar.gz
format: gz
force_archive: true
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| archived список / элементы=строка | успех | Все файлы, которые были сжаты или добавлены в архив. |
| arcroot строка | всегда | Корень архива. |
| expanded_exclude_paths список / элементы=строка | всегда | Список совпавших путей исключения из аргумента exclude_path. |
| expanded_paths список / элементы=строка | всегда | Список совпавших путей из аргумента paths. |
| missing список / элементы=строка | успех | Файлы, отсутствующие в источнике. |
| state строка | всегда | Текущее состояние архивированного файла. Если 'absent', то файлы-источники не были найдены, и архив не существует. Если 'compress', то файл-источник находится в сжатом состоянии. Если 'archive', то файл-источник или пути в настоящее время архивированы. Если 'incomplete', то архив был создан, но не все пути-источники были найдены. |
Авторы
- Ben Doherty (@bendoh)
© 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/community/general/archive_module.html