ansible.builtin.unarchive – Распаковывает архив после (необязательного) копирования его с локального компьютера
Примечание
Этот модуль входит в состав ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля unarchive, даже не указывая collections: ключевое слово. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для удобной ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Новый в версии 1.4: of ansible.builtin
Описание
- Модуль
unarchiveраспаковывает архив. Он не будет распаковывать сжатый файл, который не содержит архив. - По умолчанию он скопирует исходный файл с локальной системы на целевую перед распаковкой.
- Установите
remote_src=yesдля распаковки архива, который уже существует на целевой системе. - Если требуется проверка контрольной суммы, используйте ansible.builtin.get_url или ansible.builtin.uri для получения файла и установки
remote_src=yes. - Для целевых систем Windows используйте модуль community.windows.win_unzip вместо этого.
Примечание
Этот модуль имеет соответствующий плагин действий.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в версии 2.3 ansible.builtin | Атрибуты, которые должны иметь создаваемый файл или директория. Для получения поддерживаемых флагов см. страницу руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| copy логический тип |
| Если true, файл копируется с локального контроллера на управляемый (удаленный) узел, в противном случае плагин будет искать архив src на управляемой машине. Этот параметр устарел в пользу remote_src.Этот параметр несовместим с remote_src. |
| creates путь добавлен в версии 1.6 ansible.builtin | Если указанный абсолютный путь (файл или директория) уже существует, этот шаг не будет выполнен. | |
| decrypt логический тип добавлен в версии 2.4 ansible.builtin |
| Этот параметр управляет автоматическим расшифрованием исходных файлов с использованием vault. |
| dest путь / обязательно | Удаленный абсолютный путь, куда должен быть распакован архив. | |
| exclude список / элементы=строка добавлен в версии 2.1 ansible.builtin | Значение по умолчанию: [] | Укажите список каталогов и файлов, которые следует исключить из действия распаковки. Несовместимо с include. |
| extra_opts список / элементы=строка добавлен в версии 2.1 ansible.builtin | Значение по умолчанию: "" | Укажите дополнительные параметры, передав массив. Каждый параметр командной строки, разделенный пробелом, должен быть новым элементом массива. См. примеры. Параметры командной строки с несколькими элементами должны использовать несколько строк в массиве, по одной для каждого элемента. |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это передается в chown. | |
| include список / элементы=строка добавлен в версии 2.11 ansible.builtin | Значение по умолчанию: [] | Список каталогов и файлов, которые необходимо извлечь из архива. Будут извлечены только перечисленные здесь файлы. Несовместимо с exclude. |
| keep_newer логический тип добавлен в версии 2.1 ansible.builtin |
| Не заменять существующие файлы, которые новее файлов из архива. |
| list_files логический тип добавлен в версии 2.0 ansible.builtin |
| Если установлено в 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).Если mode не указан и целевой файл не существует, по умолчанию будет использоваться значение umask на системе при установке режима для вновь созданного файла.Если mode не указан и целевой файл существует, будет использован режим существующего файла.Указание mode — лучший способ гарантировать, что файлы будут созданы с правильными правами доступа. См. CVE-2020-1736 для получения дополнительной информации. | |
| owner строка | Имя пользователя, который должен владеть файлом/директорией, как это передается в chown. | |
| remote_src логический тип добавлен в версии 2.2 ansible.builtin |
| Установите в yes, чтобы указать, что архивный файл уже находится на удаленной системе, а не на локальном контроллере Ansible.Этот параметр несовместим с copy. |
| selevel строка | Часть уровня контекста файла 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). Это только для простых случаев, для полной поддержки загрузки используйте модуль ansible.builtin.get_url. | |
| unsafe_writes логический тип добавлен в версии 2.2 ansible.builtin |
| Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это не возможно. Пример — файлы, смонтированные в Docker, которые не могут обновляться атомарно внутри контейнера и могут записываться только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (хотя это не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| validate_certs логический тип добавлен в версии 2.2 ansible.builtin |
| Это применимо только в случае использования URL https в качестве источника файла. Это следует установить только в no для сайтов под собственным контролем, использующих самоподписанный сертификат.До версии 2.2 код работал так, как будто это было установлено в yes. |
Примечания
Примечание
- Требуется
zipinfoи командаgtar/unzipна целевом узле. - Требуется команда
zstdна целевом узле для расширения файлов .tar.zst. - Может обрабатывать файлы .zip, используя
unzip, а также файлы .tar, .tar.gz, .tar.bz2, .tar.xz и .tar.zst, используяgtar. - Не обрабатывает файлы .gz, .bz2, .xz или .zst, которые не содержат архив .tar.
- Использует аргумент
--diffgtar для расчета изменений. Если этот аргументargне поддерживается, архив всегда будет распаковываться. - Существующие файлы/директории в пункте назначения, которые не указаны в архиве, не затрагиваются. Это поведение аналогично обычной распаковке архива.
- Существующие файлы/директории в пункте назначения, которые не указаны в архиве, игнорируются при определении, следует ли распаковывать архив или нет.
- Поддерживает
check_mode.
См. также
См. также
- community.general.archive
-
Официальная документация модуля community.general.archive.
- community.general.iso_extract
-
Официальная документация модуля community.general.iso_extract.
- community.windows.win_unzip
-
Официальная документация модуля community.windows.win_unzip.
Примеры
- name: Extract foo.tgz into /var/lib/foo
ansible.builtin.unarchive:
src: foo.tgz
dest: /var/lib/foo
- name: Unarchive a file that is already on the remote machine
ansible.builtin.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)
ansible.builtin.unarchive:
src: https://example.com/example.zip
dest: /usr/local/bin
remote_src: yes
- name: Unarchive a file with extra options
ansible.builtin.unarchive:
src: /tmp/foo.zip
dest: /usr/local/bin
extra_opts:
- --transform
- s/^xxx/yyy/
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| dest строка | всегда | Путь к целевой директории. Пример: /opt/software |
| files список / элементы=строка | При list_files = True | Список всех файлов в архиве. Пример: ["file1", "file2"] |
| gid целое число | всегда | Числовой идентификатор группы, владеющей целевой директорией. Пример: 1000 |
| group строка | всегда | Имя группы, владеющей целевой директорией. Пример: librarians |
| handler строка | всегда | Обработчик программного обеспечения для архивов, используемый для извлечения и распаковки архива. Пример: TgzArchive |
| mode строка | всегда | Строка, представляющая восьмеричные разрешения целевой директории. Пример: 0755 |
| owner строка | всегда | Имя пользователя, владеющего целевой директорией. Пример: paul |
| size целое число | всегда | Размер целевой директории в байтах. Не включает размер файлов или поддиректорий, содержащихся внутри. Пример: 36 |
| src строка | всегда | Путь к исходному архиву. Если src был удаленным веб-URL или с локального контроллера Ansible, здесь отображается временное местоположение, куда был сохранён скачанный архив. Пример: /home/paul/test.tar.gz |
| state строка | всегда | Состояние целевого объекта. По сути всегда "директория". Пример: directory |
| uid целое число | всегда | Числовой идентификатор пользователя, владеющего целевой директорией. Пример: 1000 |
Авторы
- Michael DeHaan
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/unarchive_module.html