unarchive – Распаковывает архив (при необходимости) после копирования его с локальной машины
Описание
- Модуль
unarchiveраспаковывает архив. - По умолчанию он скопирует исходный файл с локальной системы на целевую перед распаковкой.
- Установите
remote_src=yes, чтобы распаковать архив, который уже существует на целевой системе. - Если требуется проверка контрольной суммы, используйте get_url или uri вместо этого для получения файла и установки
remote_src=yes. - Для целевых систем Windows используйте модуль win_unzip.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в 2.3 | Атрибуты, которые должны иметь результирующий файл или каталог. Чтобы получить поддерживаемые флаги, см. руководство к chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. Оператор = используется по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| copy булево |
| Если true, файл копируется с локального 'master' на целевую машину, в противном случае плагин будет искать архив src на целевой машине. Этот параметр устарел в пользу remote_src.Этот параметр несовместим с remote_src. |
| creates путь | Если указанный абсолютный путь (файл или каталог) уже существует, этот шаг не будет выполнен. | |
| decrypt булево добавлен в 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| dest путь / обязательно | Абсолютный удаленный путь, куда должен быть распакован архив. | |
| exclude список добавлен в 2.1 | Список каталогов и файлов, которые следует исключить из действия распаковки. | |
| extra_opts список добавлен в 2.1 | По умолчанию: "" | Укажите дополнительные параметры, передав массив. |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как если бы это было передано в chown. | |
| keep_newer булево добавлен в 2.1 |
| Не заменять существующие файлы, которые старше файлов из архива. |
| list_files булево добавлен в 2.0 |
| Если установлено в True, возвращается список файлов, содержащихся в архиве tar. |
| 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. | |
| remote_src булево добавлен в 2.2 |
| Установите yes, чтобы указать, что архивный файл уже находится на удалённой системе, а не на локальном контроллере Ansible.Этот параметр несовместим с copy. |
| selevel строка | По умолчанию: "s0" | Часть уровня контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range.Когда установлено _default, будет использована часть политики level, если она доступна. |
| serole строка | Часть роли контекста файла SELinux. Когда установлено _default, будет использована часть политики role, если она доступна. | |
| setype строка | Часть типа контекста файла SELinux. Если установлено _default, будет использована часть политики type, если она доступна. | |
| seuser строка | Часть пользователя контекста файла SELinux. По умолчанию используется политика system, если применимо.Если установлено _default, будет использована часть политики user, если она доступна. | |
| src путь / обязательно | Если remote_src=no (по умолчанию), локальный путь к файлу архива для копирования на целевой сервер; может быть абсолютным или относительным. Если remote_src=yes, путь на целевом сервере к существующему архивному файлу для распаковки.Если remote_src=yes и src содержат ://, удалённая машина сначала загрузит файл с URL. (добавлен в версии 2.0). Это только для простых случаев, для полной поддержки загрузки используйте модуль get_url. | |
| unsafe_writes булево добавлен в 2.2 |
| Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны так, что это предотвращается. Один из примеров – это файлы, монтированные через Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только в небезопасном режиме. Этот параметр позволяет Ansible использовать небезопасные методы обновления файлов, когда атомарные операции завершаются ошибкой (хотя он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate_certs булево добавлен в 2.2 |
| Это применимо только в случае использования URL https в качестве источника файла. Это должно быть установлено в no только для сайтов, контролируемых пользователем, использующих самозаверяющий сертификат.До версии 2.2 код работал так, как будто это было установлено в yes. |
Примечания
Примечание
- Требуется команда
gtar/unzipна целевом хосте. - Может обрабатывать файлы .zip, используя
unzip, а также файлы .tar, .tar.gz, .tar.bz2 и .tar.xz, используяgtar. - Использует аргумент gtar’s
--diffдля расчета изменений. Если этотargне поддерживается, архив всегда будет распакован. - Существующие файлы/каталоги в пункте назначения, которые отсутствуют в архиве, не затрагиваются. Это поведение аналогично обычному извлечению из архива.
- Существующие файлы/каталоги в пункте назначения, которые отсутствуют в архиве, игнорируются при определении необходимости распаковки архива.
См. также
См. также
- archive – Создаёт сжатый архив одного или нескольких файлов или деревьев
- Официальная документация модуля archive.
- iso_extract – Извлекает файлы из образа ISO
- Официальная документация модуля iso_extract.
- win_unzip – Распаковывает сжатые файлы и архивы на узле Windows
- Официальная документация модуля win_unzip.
Примеры
- name: Extract foo.tgz into /var/lib/foo
unarchive:
src: foo.tgz
dest: /var/lib/foo
- name: Unarchive a file that is already on the remote machine
unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
remote_src: yes
- name: Unarchive a file that needs to be downloaded (added in 2.0)
unarchive:
src: https://example.com/example.zip
dest: /usr/local/bin
remote_src: yes
- name: Unarchive a file with extra options
unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
extra_opts:
- --transform
- s/^xxx/yyy/
Статус
- Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается командой Ansible Core. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке данного модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Michael DeHaan
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/unarchive_module.html