Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

В версии 1.0.0: коллекции 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 Bundle считывается на стороне модуля и может потребоваться явно скопировать его с контроллера, если он не запускается локально.
aws_config
словарь
Словарь для изменения конфигурации botocore.
Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.
Только ключ 'user_agent' используется для модулей boto. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о конфигурации 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
логическое значение
    Варианты:
  • нет ←
  • да
Используйте logger botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», выполняемых во время задачи, выводя набор в ключ task_results с именем resource_actions. Используйте обратный вызов aws_resource_action, чтобы вывести полный список, созданный во время книги задач. Переменная среды 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/s3_sync_module.html

Spec-Zone.ru

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