Spec-Zone.ru › Ansible 2.11

community.aws.s3_sync – Эффективно загружать несколько файлов в S3

Примечание

Этот плагин входит в состав коллекции community.aws (версия 1.3.0).

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

Чтобы использовать его в книге задач, укажите: community.aws.s3_sync.

Введено в версии 1.0.0: of community.aws

  • Краткое описание
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Значения возврата

Краткое описание

  • Модуль S3 отлично работает, но очень медленный для большого объёма файлов — даже дюжина файлов будет заметна. Помимо скорости, он обрабатывает шаблоны, включения/исключения, типы MIME, сопоставления сроков действия, рекурсию, управление кэшем и интеллектуальное сопоставление каталогов.

Требования

Ниже перечислены требования к хосту, на котором выполняется этот модуль.

  • boto
  • boto3 >= 1.4.4
  • botocore
  • python >= 2.6
  • python-dateutil

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
aws_access_key
строка
Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY.
Если установлен параметр profile, этот параметр игнорируется.
Одновременное использование параметров aws_access_key и profile устарело и будет сделано взаимоисключающим после 2022-06-01.

псевдонимы: ec2_access_key, access_key
aws_ca_bundle
путь
Расположение файла с сертификатами CA для проверки SSL-сертификатов.
Используется только для модулей, основанных на boto3.
Примечание: Файл с сертификатами CA читается со стороны модуля и, возможно, должен быть скопирован из контроллера, если модуль не запускается локально.
aws_config
словарь
Словарь для изменения конфигурации botocore.
Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.
Для модулей boto используется только ключ 'user_agent'. Дополнительную информацию о конфигурации boto можно найти по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto.
aws_secret_key
строка
Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY.
Если установлен параметр profile, этот параметр игнорируется.
Одновременное использование параметров aws_secret_key и profile устарело и будет сделано взаимоисключающим после 2022-06-01.

псевдонимы: ec2_secret_key, secret_key
bucket
строка / обязательно
Имя ведра.
cache_control
строка
Заголовок Cache-Control, устанавливаемый для загружаемых объектов.
Директивы разделены запятыми.
debug_botocore_endpoint_logs
булево
    Варианты:
  • нет ←
  • да
Использовать логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов "ресурс:действие", выполненных во время задачи, выводящих набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, выполненного во время выполнения playbook. Также можно использовать переменную среды ANSIBLE_DEBUG_BOTOCORE_LOGS.
delete
булево
    Варианты:
  • нет ←
  • да
Удаление удаленных файлов, которые существуют в ведре, но отсутствуют в корневой директории файла.
ec2_url
строка
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть.

псевдонимы: aws_endpoint_url, endpoint_url
exclude
строка
По умолчанию:
"*.?"
Сопоставление файлов по шаблонам оболочки.
Используется после include для удаления файлов (например, пропуск "*.txt").
Для нескольких шаблонов разделяйте их запятыми.
file_change_strategy
строка
    Варианты:
  • force
  • checksum
  • date_size ←
Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не исправляются — они полностью пропускаются или полностью загружаются.
date_size будет загружать, если размер файла не совпадает или если дата изменения локального файла новее, чем версия в S3.
checksum сравнивает значения etag на основе реализации s3 chunked md5.
force всегда загрузит все файлы.
file_root
путь / обязательно
Путь к файлу/каталогу для синхронизации. Это локальный путь.
Этот корневой путь очищается из имени ключа, поэтому подкаталоги останутся как ключи.
include
строка
По умолчанию:
"*"
Сопоставление файлов по шаблонам оболочки.
Используется перед exclude для определения подходящих файлов (например, только "*.gif").
Для нескольких шаблонов разделяйте их запятыми.
key_prefix
строка
В дополнение к пути к файлу добавьте этот префикс к пути в S3. Модуль добавит слеш в конец префикса, если это необходимо.
mime_map
словарь
Словарь соответствия расширений MIME-типам. Это переопределит любой стандартный/определенный MIME-тип. Например {".txt": "application/text", ".yml": "application/text"}
mode
строка
    Варианты:
  • push ←
Направление синхронизации.
permission
строка
    Варианты:
  • private
  • public-read
  • public-read-write
  • authenticated-read
  • aws-exec-read
  • bucket-owner-read
  • bucket-owner-full-control
Стандартные ACL для применения к синхронизированным файлам.
Изменение этого ACL влияет только на вновь синхронизированные файлы, оно не вызывает полной перезагрузки.
profile
строка
Использует профиль boto. Работает только с boto >= 2.24.0.
Использование profile переопределяет aws_access_key, aws_secret_key и security_token, и поддержка одновременного их использования с profile устарела.
aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01.

псевдонимы: aws_profile
region
строка
AWS-регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

псевдонимы: aws_region, ec2_region
retries
строка
Параметр retries не выполняет никаких действий и будет удален после 2022-06-01
security_token
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
Если установлен параметр profile, этот параметр игнорируется.
Одновременное использование параметров security_token и profile устарело и будет сделано взаимоисключающим после 2022-06-01.

псевдонимы: aws_security_token, access_token
validate_certs
булево
    Варианты:
  • нет
  • да ←
При значении "нет" SSL-сертификаты не будут проверены для версий boto >= 2.6.0.

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета AWS_URL или EC2_URL, AWS_PROFILE или AWS_DEFAULT_PROFILE, AWS_ACCESS_KEY_ID или AWS_ACCESS_KEY или EC2_ACCESS_KEY, AWS_SECRET_ACCESS_KEY или AWS_SECRET_KEY или EC2_SECRET_KEY, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN, AWS_REGION или EC2_REGION, AWS_CA_BUNDLE
  • Ansible использует конфигурационный файл boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION обычно используются для указания AWS-региона, если это необходимо, но его также можно настроить в конфигурационном файле boto

Примеры

- name: basic upload
  community.aws.s3_sync:
    bucket: tedder
    file_root: roles/s3/files/

- name: all the options
  community.aws.s3_sync:
    bucket: tedder
    file_root: roles/s3/files
    mime_map:
      .yml: application/text
      .json: application/text
    key_prefix: config_files/web
    file_change_strategy: force
    permission: public-read
    cache_control: "public, max-age=31536000"
    include: "*"
    exclude: "*.txt,.*"

Значения возврата

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

Ключ Возвращаемое значение Описание
filelist_actionable
список / элементы=строка
всегда
список файлов (списки словарей) файлов, которые будут загружены после принятия решения стратегии

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477931256, 'путь_s3': 's3sync/policy.json', 'размер_почему': '151 / 151', 'время_почему': '1477931256 / 1477929260'}]
filelist_initial
список / элементы=строка
всегда
список файлов (списки словарей) из начального поиска

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'эпоха_модификации': 1477416706}]
filelist_local_etag
список / элементы=строка
всегда
список файлов (списки словарей), включая рассчитанный локальный etag

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706, 'путь_s3': 's3sync/policy.json'}]
filelist_s3
список / элементы=строка
всегда
список файлов (списки словарей), включая информацию о ранее загруженных версиях

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706, 'путь_s3': 's3sync/policy.json'}]
filelist_typed
список / элементы=строка
всегда
список файлов (списки словарей) с рассчитанными или переопределёнными типами mime

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'тип_mime': 'application/json', 'эпоха_модификации': 1477416706}]
uploaded
список / элементы=строка
всегда
список файлов (списки словарей) файлов, которые были фактически загружены

Пример:
[{'байты': 151, 'путь_куска': 'policy.json', 'полный_путь': 'roles/cf/files/policy.json', 'путь_s3': 's3sync/policy.json', 'размер_почему': '151 / 151', 'время_почему': '1477931637 / 1477931489'}]


Авторы

  • Ted Timmons (@tedder)

© 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/aws/s3_sync_module.html

Spec-Zone.ru

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