unarchive - Распаковывает архив после (необязательно) копирования его с локального компьютера.
Новая версия с 1.4.
Описание
- Модуль
unarchiveраспаковывает архив. - По умолчанию он копирует исходный файл с локальной системы на целевой компьютер перед распаковкой.
- Установите
remote_src=yes, чтобы распаковать архив, который уже существует на целевом компьютере. - Для целевых систем Windows используйте модуль win_unzip вместо этого.
- Если требуется проверка контрольной суммы, используйте модуль get_url или uri для загрузки файла и установления
remote_src=yes.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes (добавлено в 2.3) | Атрибуты файла или каталога. Для получения поддерживаемых флагов обратитесь к справке man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в lsattr. псевдонимы: attr | |
| copy bool |
| Если true, файл копируется с локального «master» на целевой компьютер, в противном случае плагин ищет архив src на целевом компьютере. Этот параметр устарел в пользу remote_src.Этот параметр несовместим с remote_src. |
| creates (добавлено в 1.6) | Если указанный абсолютный путь (файл или каталог) уже существует, этот шаг не будет выполнен. | |
| decrypt bool (добавлено в 2.4) |
"да" | Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью vault. |
| dest обязательный | Абсолютный удаленный путь, куда должен быть распакован архив. | |
| exclude (добавлено в 2.1) | Список каталогов и файлов, которые необходимо исключить из действия распаковки. | |
| extra_opts (добавлено в 2.1) | Значение по умолчанию: "" | Укажите дополнительные параметры, передав массив. |
| group | Имя группы, которая должна владеть файлом/каталогом, как если бы это было передано в chown. | |
| keep_newer bool (добавлено в 2.1) |
| Не заменять существующие файлы, которые новее файлов из архива. |
| list_files bool (добавлено в 2.0) |
| Если установлено в True, возвращается список файлов, содержащихся в tarball. |
| mode | Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо указать ведущую ноль, чтобы парсер YAML Ansible понимал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '0644'), чтобы Ansible получил строку и мог самостоятельно преобразовать строку в число. Если вы передадите Ansible число без одного из этих правил, результат будет десятичным числом, что может привести к неожиданным результатам. Начиная с версии 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). | |
| owner | Имя пользователя, который должен владеть файлом/каталогом, как если бы это было передано в chown. | |
| remote_src bool (добавлено в 2.2) |
| Установите значение yes, чтобы указать, что архивированный файл уже находится на удаленной системе и не локален для контроллера Ansible.Этот параметр несовместим с copy. |
| selevel | Значение по умолчанию: "s0" | Часть уровня контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. _default функция работает так же, как для seuser. |
| serole | Часть роли контекста файла SELinux, _default функция работает так же, как для seuser. | |
| setype | Часть типа контекста файла SELinux, _default функция работает так же, как для seuser. | |
| seuser | Часть пользователя контекста файла SELinux. Будет по умолчанию использовать политику системы, если применимо. Если установлено значение _default, будет использоваться user часть политики, если она доступна. | |
| src обязательный | Если remote_src=no (по умолчанию), локальный путь к файлу архива для копирования на целевой сервер; может быть абсолютным или относительным. Если remote_src=yes, путь на целевом сервере к существующему файлу архива для распаковки.Если remote_src=yes и src содержат ://, удаленный компьютер сначала загрузит файл из URL-адреса. (добавлено в 2.0). Это только для простых случаев, для полной поддержки загрузки используйте модуль get_url. | |
| unsafe_writes bool (добавлено в 2.2) |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Один из примеров – смонтированные файлы Docker, они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Эта булева опция позволяет Ansible переходить к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. |
| validate_certs bool (добавлено в 2.2) |
| Это относится только к использованию URL-адреса HTTPS в качестве источника файла. Это должно быть установлено в значение no только для сайтов под собственным контролем, использующих самозаверяющие сертификаты.До версии 2.2 код работал так, как будто это было установлено в значение yes. |
Примечания
Примечание
- Требуется команда
gtar/unzipна целевом хосте. - Может обрабатывать файлы .zip с помощью
unzip, а также файлы .tar, .tar.gz, .tar.bz2 и .tar.xz с помощьюgtar. - Использует аргумент gtar’s
--diffдля вычисления изменений. Если этотargне поддерживается, архив всегда будет распакован. - Существующие файлы/каталоги в пункте назначения, которые отсутствуют в архиве, не затрагиваются. Это то же поведение, что и при обычной распаковке архива.
- Существующие файлы/каталоги в пункте назначения, которые отсутствуют в архиве, игнорируются при принятии решения о распаковке архива или нет.
- Для целевых систем 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. Подробнее см. Техническое обслуживание и поддержка модулей.
Для получения списка других модулей, которые также поддерживаются командой Ansible Core, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/unarchive_module.html