archive - Создаёт сжатый архив одного или нескольких файлов или деревьев
Новая в версии 2.3.
Описание
- Архивирует файлы. Это противоположность unarchive. По умолчанию предполагается, что источник сжатия существует в целевом каталоге. Файл-источник не будет скопирован с локальной системы на целевую перед архивацией. Файлы-источники могут быть удалены после архивации, если задать remove=True.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлено в 2.3) | Атрибуты, которые должен иметь файл или каталог. Чтобы получить поддерживаемые флаги, обратитесь к справочной странице для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в lsattr. псевдонимы: attr | |
| dest | Имя файла целевого архива. Это необходимо, когда path ссылается на несколько файлов, указав шаблон, каталог или список путей. | |
| exclude_path (добавлено в 2.4) | Абсолютный удаленный путь, шаблон или список путей или шаблонов для исключения файла или файлов из архива | |
| format |
| Тип сжатия, который необходимо использовать. Поддержка xz была добавлена в версии 2.5. |
| group | Имя группы, которая должна владеть файлом/каталогом, как в команде chown. | |
| mode | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны указать ведущий ноль, чтобы интерпретатор YAML Ansible понимал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и сам выполнил преобразование из строки в число. Если вы передадите Ansible число без одного из этих правил, получится десятичное число, что приведёт к непредсказуемым результатам. С версии 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). | |
| owner | Имя пользователя, который должен владеть файлом/каталогом, как в команде chown. | |
| path обязательно | Удаленный абсолютный путь, шаблон или список путей или шаблонов для сжатия или архивирования файла или файлов. | |
| remove bool |
| Удалить добавленные файлы и деревья после добавления в архив. |
| selevel | По умолчанию: "s0" | Уровень части контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. _default функция работает, как для seuser. |
| serole | Роль части контекста файла SELinux, _default функция работает, как для seuser. | |
| setype | Тип части контекста файла SELinux, _default функция работает, как для seuser. | |
| seuser | Пользователь части контекста файла SELinux. По умолчанию используется системная политика, если применимо. Если установлено значение _default, будет использоваться часть user политики, если доступна. | |
| unsafe_writes bool (добавлено в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны, что препятствует этому. Одним из примеров являются файлы, смонтированные в docker, которые не могут обновляться атомарно и могут быть обновлены только небезопасным способом. Этот булевый параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Следует учитывать, что это подвержено гонкам и может привести к повреждению данных. |
Примечания
Примечание
- требуются пакеты tarfile, zipfile, gzip и bzip2 на целевом хосте
- требуется lzma или backports.lzma, если используется формат xz
- может создавать сжатые файлы или архивы с gzip, bzip2, lzma и zip
Примеры
- name: Compress directory /path/to/foo/ into /path/to/foo.tgz
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
archive:
path: /path/to/foo
remove: yes
- name: Create a zip archive of /path/to/foo
archive:
path: /path/to/foo
format: zip
- name: Create a bz2 archive of multiple files, rooted at /path
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
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
archive:
path:
- /path/to/foo/*
dest: /path/file.tar.bz2
exclude_path:
- /path/to/foo/ba*
format: bz2
Возвращаемые значения
Общие значения возврата описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| archived список | успех | Любые файлы, которые были сжаты или добавлены в архив. |
| arcroot строка | всегда | Корень архива. |
| expanded_exclude_paths список | всегда | Список совпадающих путей исключения из аргумента exclude_path. |
| expanded_paths список | всегда | Список совпадающих путей из аргумента paths. |
| missing список | успех | Любые файлы, которые отсутствовали в источнике. |
| state строка | всегда | Текущее состояние архивируемого файла. Если 'отсутствует', то файлы-источники не найдены, и архив не существует. Если 'сжат', то исходный файл находится в сжатом состоянии. Если 'архив', то исходный файл или пути в настоящее время архивированы. Если 'неполный', то архив был создан, но не все пути-источники были найдены. |
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратной совместимости интерфейса.
Обслуживание
Этот модуль помечен как сообщество, что означает, что он поддерживается сообществом Ansible. См. Обслуживание и поддержка модулей для получения дополнительной информации.
Список других модулей, также поддерживаемых сообществом Ansible, см. здесь.
Автор
- Ben Doherty (@bendoh)
Подсказка
Если вы заметили какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/archive_module.html