unarchive – Распаковывает архив (при необходимости, скопировав его с локальной машины)
Описание
- Модуль
unarchiveраспаковывает архив. Он не будет распаковывать сжатый файл, не содержащий архив. - По умолчанию он скопирует исходный файл с локальной системы на целевую перед распаковкой.
- Установите
remote_src=yes, чтобы распаковать архив, который уже существует на целевой системе. - Если требуется проверка контрольной суммы, используйте get_url или uri для получения файла и установки
remote_src=yes. - Для целевых систем Windows используйте модуль win_unzip.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должен иметь результирующий файл или директория. Чтобы узнать поддерживаемые флаги, см. страницу справки для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и отображаемый lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| copy логическое значение |
| Если true, файл копируется с локального 'master' на целевой компьютер, в противном случае плагин будет искать архив src на целевом компьютере. Этот параметр устарел в пользу remote_src.Этот параметр несовместим с remote_src. |
| creates путь | Если указанный абсолютный путь (файл или директория) уже существует, этот шаг не будет выполнен. | |
| decrypt логическое значение добавлено в 2.4 |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с помощью хранилища. |
| dest путь / обязательно | Абсолютный удаленный путь, куда должен быть распакован архив. | |
| exclude список | Список каталогов и файлов, которые нужно исключить из действия распаковки. | |
| extra_opts список | По умолчанию: "" | Укажите дополнительные параметры, передав массив. Каждый параметр командной строки, разделенный пробелом, должен быть новым элементом массива. См. примеры. Параметры командной строки с несколькими элементами должны использовать несколько строк в массиве, по одной для каждого элемента. |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это передается в chown. | |
| keep_newer логическое значение |
| Не заменять существующие файлы, которые новее файлов из архива. |
| list_files логическое значение |
| Если установлено в True, возвращает список файлов, содержащихся в архиве. |
| 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 логическое значение |
| Установите в 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. (version_added 2.0). Это только для простых случаев, для полной поддержки загрузки используйте модуль get_url. | |
| unsafe_writes логическое значение |
| Влияние на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это предотвращает. Одним примером являются файлы, смонтированные в docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции терпят неудачу (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate_certs логическое значение |
| Это применимо только в случае использования URL https в качестве источника файла. Это должно быть установлено в no только для сайтов, контролируемых лично, использующих самоподписанный сертификат.До версии 2.2 код работал так, как если бы это было установлено в yes. |
Примечания
Примечание
- Требует
zipinfoиgtar/unzipкоманду на целевом хосте. - Может обрабатывать файлы .zip с помощью
unzip, а также файлы .tar, .tar.gz, .tar.bz2 и .tar.xz с помощьюgtar. - Не обрабатывает файлы .gz, .bz2 или .xz, которые не содержат архив .tar.
- Использует аргумент 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]
Поддержка 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.9/modules/unarchive_module.html