Spec-Zone.ru › Ansible 2.11

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
логический тип
    Варианты:
  • no
  • да ←
Если true, файл копируется с локального контроллера на управляемый (удаленный) узел, в противном случае плагин будет искать архив src на управляемой машине.
Этот параметр устарел в пользу remote_src.
Этот параметр несовместим с remote_src.
creates
путь
добавлен в версии 1.6 ansible.builtin
Если указанный абсолютный путь (файл или директория) уже существует, этот шаг не будет выполнен.
decrypt
логический тип
добавлен в версии 2.4 ansible.builtin
    Варианты:
  • no
  • да ←
Этот параметр управляет автоматическим расшифрованием исходных файлов с использованием 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.
  • Использует аргумент --diff gtar для расчета изменений. Если этот аргумент 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API