Spec-Zone.ru › Ansible 2.11

community.general.archive – Создаёт сжатый архив одного или нескольких файлов или каталогов

Примечание

Этот плагин входит в сборку community.general (версия 2.0.1).

Для его установки используйте: ansible-galaxy collection install community.general.

Для использования в плейбуке укажите: community.general.archive.

  • Обзор
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Возвращаемые значения

Обзор

  • Создаёт или дополняет архив.
  • Исходные данные и архив находятся на удалённом хосте, и архив не копируется на локальный хост.
  • Файлы-источники можно удалить после архивирования, указав remove=True.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3 ansible.builtin
Атрибуты, которые должны быть у полученного файла или каталога.
Для получения поддерживаемых флагов смотрите страницу справки для chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и отображается командой lsattr.
Оператор = принимается по умолчанию, в противном случае необходимо включить операторы + или - в строку.

псевдонимы: attr
dest
путь
Имя файла архива назначения. Родительская директория должна существовать на удалённом хосте.
Это необходимо, когда path ссылается на несколько файлов, указав шаблон, директорию или список путей.
exclude_path
список / элементы=путь
Абсолютный путь, шаблон или список путей или шаблонов на удалённом хосте для исключения из списка path и расширения шаблонов.
force_archive
булево
    Варианты:
  • нет ←
  • да
Позволяет принудительно обрабатывать этот модуль как архив, даже если указан только один файл.
По умолчанию сохраняется поведение. То есть, при указании одного файла, он сжимается, а не архивируется.
format
строка
    Варианты:
  • bz2
  • gz ←
  • tar
  • xz
  • zip
Тип сжатия.
Поддержка xz была добавлена в Ansible 2.5.
group
строка
Имя группы, которой должен принадлежать файл/каталог, как передаётся в chown.
mode
сырой
Права доступа, которые должен иметь полученный файл или каталог.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вам нужно либо добавить ведущую ноль, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (как 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.
path
список / элементы=путь / необходимый
Абсолютный путь, шаблон или список путей или шаблонов на удалённом хосте для сжатия или архивирования файлов.
remove
булево
    Варианты:
  • нет ←
  • да
Удалить все добавленные файлы и каталоги-источники после добавления в архив.
selevel
строка
Часть уровня SELinux файла контекста.
Это атрибут MLS/MCS, иногда называемый range.
Когда установлено _default, будет использоваться часть политики level, если она доступна.
serole
строка
Часть роли SELinux файла контекста.
Когда установлено _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть типа SELinux файла контекста.
Когда установлено _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть пользователя SELinux файла контекста.
По умолчанию используется политика system, если применимо.
Когда установлено _default, будет использоваться часть политики user, если она доступна.
unsafe_writes
булево
добавлен в 2.2 ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомарную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию данный модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто не работают таким образом, что это не возможно. Одним из примеров являются файлы, смонтированные с помощью docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible использовать небезопасные методы обновления файлов, когда атомарные операции завершаются неудачно (хотя это не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных.

Примечания

Примечание

  • Требуются пакеты tarfile, zipfile, gzip и bzip2 на целевом хосте.
  • Требуются пакеты lzma или backports.lzma при использовании формата xz.
  • Может создавать сжатые файлы или архивы в формате gzip, bzip2, lzma и zip.

См. также

См. также

ansible.builtin.unarchive

Официальная документация по модулю ansible.builtin.unarchive.

Примеры

- name: Compress directory /path/to/foo/ into /path/to/foo.tgz
  community.general.archive:
    path: /path/to/foo
    dest: /path/to/foo.tgz

- name: Compress regular file /path/to/foo into /path/to/foo.gz and remove it
  community.general.archive:
    path: /path/to/foo
    remove: yes

- name: Create a zip archive of /path/to/foo
  community.general.archive:
    path: /path/to/foo
    format: zip

- name: Create a bz2 archive of multiple files, rooted at /path
  community.general.archive:
    path:
    - /path/to/foo
    - /path/wong/foo
    dest: /path/file.tar.bz2
    format: bz2

- name: Create a bz2 archive of a globbed path, while excluding specific dirnames
  community.general.archive:
    path:
    - /path/to/foo/*
    dest: /path/file.tar.bz2
    exclude_path:
    - /path/to/foo/bar
    - /path/to/foo/baz
    format: bz2

- name: Create a bz2 archive of a globbed path, while excluding a glob of dirnames
  community.general.archive:
    path:
    - /path/to/foo/*
    dest: /path/file.tar.bz2
    exclude_path:
    - /path/to/foo/ba*
    format: bz2

- name: Use gzip to compress a single archive (i.e don't archive it first with tar)
  community.general.archive:
    path: /path/to/foo/single.file
    dest: /path/file.gz
    format: gz

- name: Create a tar.gz archive of a single file.
  community.general.archive:
    path: /path/to/foo/single.file
    dest: /path/file.tar.gz
    format: gz
    force_archive: true

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:

Ключ Возвращаемое значение Описание
archived
список / элементы=строка
успех
Все файлы, которые были сжаты или добавлены в архив.

arcroot
строка
всегда
Корень архива.

expanded_exclude_paths
список / элементы=строка
всегда
Список совпавших путей исключения из аргумента exclude_path.

expanded_paths
список / элементы=строка
всегда
Список совпавших путей из аргумента paths.

missing
список / элементы=строка
успех
Файлы, отсутствующие в источнике.

state
строка
всегда
Текущее состояние архивированного файла. Если 'absent', то файлы-источники не были найдены, и архив не существует. Если 'compress', то файл-источник находится в сжатом состоянии. Если 'archive', то файл-источник или пути в настоящее время архивированы. Если 'incomplete', то архив был создан, но не все пути-источники были найдены.



Авторы

  • Ben Doherty (@bendoh)

© 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/community/general/archive_module.html

Spec-Zone.ru

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