archive – Создаёт сжатый архив одного или нескольких файлов или деревьев
Описание
- Архивирует файлы.
- Это противоположно модулю unarchive.
- По умолчанию предполагается, что исходные файлы/каталоги уже существуют на целевом сервере.
- Исходные файлы не копируются на целевой сервер перед архивированием.
- Исходные файлы можно удалить после архивирования, указав remove=True.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должны иметь результирующий файл или директория. Чтобы получить поддерживаемые флаги, см. страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при выводе команды lsattr. Оператор = используется по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| dest путь | Имя файла целевого архива. Это необходимо, когда path ссылается на несколько файлов, указав шаблон, директорию или список путей. | |
| exclude_path список добавлен в 2.4 | Абсолютный удалённый путь, шаблон или список путей или шаблонов для исключения файла или файлов из архива. | |
| force_archive булево добавлен в 2.8 |
| Позволяет принудительно обрабатывать модуль как архив, даже если указан только один файл. По умолчанию сохраняется поведение. То есть, когда указан один файл, он только сжимается (не архивируется). |
| 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). | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как и при использовании команды chown. | |
| path список / обязательный | Абсолютный удалённый путь, шаблон или список путей или шаблонов для файлов или каталогов для сжатия или архивирования. | |
| remove булево |
| Удалить все добавленные исходные файлы и каталоги после добавления в архив. |
| selevel строка | Значение по умолчанию: "s0" | Часть контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Когда установлено значение _default, будет использоваться часть политики level, если она доступна. |
| serole строка | Часть контекста файла SELinux. Когда установлено значение _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть контекста файла SELinux. Когда установлено значение _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть контекста файла SELinux. По умолчанию используется политика system, если применимо.Когда установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| unsafe_writes булево |
| Влияет на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это невозможно. Одним из примеров являются файлы, смонтированные в docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции не выполняются (однако это не принуждает Ansible к выполнению небезопасных записей). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
Примечания
Примечание
- Требуются пакеты tarfile, zipfile, gzip и bzip2 на целевом хосте.
- Требуется lzma или backports.lzma, если используется формат xz.
- Может создавать сжатые файлы или архивы с использованием gzip, bzip2, lzma и zip.
См. также
См. также
- unarchive – Распаковывает архив (при необходимости) скопировав его с локальной машины
- Официальная документация модуля unarchive.
Примеры
- 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
- name: Use gzip to compress a single archive (i.e don't archive it first with tar)
archive:
path: /path/to/foo/single.file
dest: /path/file.gz
format: gz
- name: Create a tar.gz archive of a single file.
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 строка | всегда | Текущее состояние архивированного файла. Если 'отсутствует', то исходные файлы не найдены и архив не существует. Если 'сжато', то исходный файл находится в сжатом состоянии. Если 'архивировано', то исходный файл или пути в настоящее время архивированы. Если 'неполный', то архив был создан, но не все пути источника были найдены. |
Статус
- Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.9/modules/archive_module.html