unarchive - Распаковывает архив после (необязательного) копирования его с локального компьютера.
Новая в версии 1.4.
Описание
- Модуль
unarchiveраспаковывает архив. - По умолчанию он скопирует исходный файл с локальной системы на целевую перед распаковкой.
- Установите
remote_src=yesдля распаковки архива, который уже существует на целевой системе. - Для целевых систем Windows используйте модуль win_unzip.
Параметры
| параметр | обязательно | по умолчанию | варианты | комментарии |
|---|---|---|---|---|
| attributes (добавлен в 2.3)
| нет | None | Атрибуты, которые должен иметь файл или каталог. Для получения поддерживаемых флагов см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. псевдонимы: attr | |
| copy | нет | да |
| Если True, файл копируется с локального 'master' на целевой компьютер, в противном случае плагин будет искать архив src на целевом компьютере. Этот параметр устарел в пользу remote_src.Этот параметр несовместим с remote_src. |
| creates (добавлен в 1.6)
| нет | Имя файла. Если файл уже существует, этот шаг не будет выполнен. | ||
| decrypt (добавлен в 2.4)
| нет | Да |
| Этот параметр управляет автоматическим дешифрованием исходных файлов с помощью хранилища. |
| dest | да | Абсолютный удаленный путь, куда должен быть распакован архив. | ||
| exclude (добавлен в 2.1)
| нет | Список каталогов и файлов, которые вы хотите исключить из действия распаковки. | ||
| extra_opts (добавлен в 2.1)
| нет | Укажите дополнительные параметры, передав массив. | ||
| group | нет | Имя группы, которая должна владеть файлом/каталогом, как если бы это было передано в chown. | ||
| keep_newer (добавлен в 2.1)
| нет | нет |
| Не заменять существующие файлы, которые более новые, чем файлы из архива. |
| list_files (добавлен в 2.0)
| нет | нет |
| Если установлено в True, возвращает список файлов, которые содержатся в tarball. |
| mode | нет | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644). Пропуск ведущего нуля, вероятно, приведет к непредвиденным результатам. Начиная с версии 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 работает так же, как для 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 (добавлен в 2.2)
| нет |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов. Иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним примером являются файлы, смонтированные в Docker, они не могут быть обновлены атомарно и могут быть обновлены только небезопасным способом. Этот булев параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. | |
| validate_certs (добавлен в 2.2)
| нет | да |
| Это применимо только если в качестве источника файла используется HTTPS-URL. Это должно быть установлено в no только на сайтах, которыми вы контролируете, используя самозаверяющий сертификат.До версии 2.2 код работал так, как будто этот параметр был установлен в yes. |
Примеры
- 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
Примечания
Примечание
- Требуется команда
gtar/unzipна целевом хосте. - Может обрабатывать файлы .zip с использованием
unzip, а также файлы .tar, .tar.gz, .tar.bz2 и .tar.xz с использованиемgtar. - Использует аргумент gtar’s
--diffдля расчета изменений. Если этотargне поддерживается, архив всегда будет распакован. - Существующие файлы/каталоги в целевом месте, которые отсутствуют в архиве, не затрагиваются. Это то же поведение, что и при обычном извлечении из архива.
- Существующие файлы/каталоги в целевом месте, которые отсутствуют в архиве, игнорируются для определения того, следует ли распаковывать архив или нет.
- Для целевых систем Windows используйте модуль win_unzip.
Статус
Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.
Информация о техническом обслуживании
Дополнительную информацию о поддержке этого модуля Red Hat см. в knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если вас это заинтересует, прочтите Информация о сообществе и сотрудничество, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/unarchive_module.html