Spec-Zone.ru › Ansible

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

Примечание

Этот модуль входит в коллекцию community.aws (версия 8.0.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.aws. Для использования этого модуля необходимы дополнительные требования, см. Требования для получения подробностей.

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

Новинка в community.aws 1.0.0

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

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

Требования

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

  • python >= 3.6
  • boto3 >= 1.26.0
  • botocore >= 1.29.0

Параметры

Параметр

Комментарии

access_key

aliases: aws_access_key_id, aws_access_key, ec2_access_key

string

Идентификатор ключа доступа AWS.

См. документацию AWS для получения дополнительной информации о токенах доступа https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Переменные окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY также могут использоваться в порядке убывания предпочтения.

Параметры aws_access_key и profile являются взаимоисключающими.

Псевдоним aws_access_key_id был добавлен в релизе 5.1.0 для согласованности с SDK AWS botocore.

Псевдоним ec2_access_key устарел и будет удален в релизе после 2024-12-01.

Поддержка переменной окружения EC2_ACCESS_KEY устарела и будет удалена в релизе после 2024-12-01.

aws_ca_bundle

path

Расположение пакета CA, используемого при проверке сертификатов SSL.

Переменная окружения AWS_CA_BUNDLE также может использоваться.

aws_config

dictionary

Словарь для изменения конфигурации botocore.

Параметры можно найти в документации AWS https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config.

bucket

string / required

Имя корзины.

cache_control

string

Заголовок Cache-Control, установленный для загружаемых объектов.

Директивы разделяются запятыми.

По умолчанию: ""

debug_botocore_endpoint_logs

boolean

Использовать botocore.endpoint регистратор для анализа уникальных (а не общих) "resource:action" вызовов API, сделанных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения playbook.

Переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS также может использоваться.

Варианты:

  • false ← (по умолчанию)
  • true

delete

boolean

Удалить удаленные файлы, которые существуют в корзине, но отсутствуют в корневом каталоге файлов.

Варианты:

  • false ← (по умолчанию)
  • true

endpoint_url

aliases: ec2_url, aws_endpoint_url, s3_url

string

URL для подключения вместо стандартных конечных точек AWS. Хотя это можно использовать для подключения к другим совместимым с AWS сервисам, коллекции amazon.aws и community.aws тестируются только на AWS.

Переменные окружения AWS_URL или EC2_URL также могут использоваться в порядке убывания предпочтения.

Псевдонимы ec2_url и s3_url устарели и будут удалены в релизе после 2024-12-01.

Поддержка переменной окружения EC2_URL устарела и будет удалена в релизе после 2024-12-01.

exclude

string

Соответствие файлов в стиле шаблонов оболочки.

Используется после include для удаления файлов (например, пропустить "*.txt")

Для нескольких шаблонов разделите их запятыми.

По умолчанию: ".*"

file_change_strategy

string

Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не исправляются — они полностью пропускаются или полностью загружаются.

date_size будет загружать, если размеры файлов не совпадают или если дата изменения локального файла новее, чем версия s3

checksum будет сравнивать значения etag на основе реализации s3 фрагментированных md5.

force всегда будет загружать все файлы.

Варианты:

  • "force"
  • "checksum"
  • "date_size" ← (по умолчанию)

file_root

path / required

Путь к файлу/каталогу для синхронизации. Это локальный путь.

Этот корневой путь очищается от имени ключа, поэтому подкаталоги останутся как ключи.

include

string

Соответствие файлов в стиле шаблонов оболочки.

Используется перед exclude для определения подходящих файлов (например, только "*.gif")

Для нескольких шаблонов разделите их запятыми.

По умолчанию: "*"

key_prefix

string

В дополнение к пути к файлу, добавьте префикс пути s3. Модуль добавит слеш в конце префикса, если это необходимо.

По умолчанию: ""

mime_map

dictionary

Запись словаря из расширения в тип MIME. Это переопределит любой тип MIME по умолчанию/распознанный. Например {".txt": "application/text", ".yml": "application/text"}

mode

string

Направление синхронизации.

Варианты:

  • "push" ← (по умолчанию)

permission

string

Стандартное разрешение для синхронизированных файлов.

Изменение этого разрешения влияет только на недавно синхронизированные файлы, не вызывая полной перезагрузки.

Варианты:

  • "private"
  • "public-read"
  • "public-read-write"
  • "authenticated-read"
  • "aws-exec-read"
  • "bucket-owner-read"
  • "bucket-owner-full-control"

profile

aliases: aws_profile

string

Используемый профиль AWS для аутентификации.

Дополнительную информацию о профилях см. в документации AWS https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html.

Также можно использовать переменную окружения AWS_PROFILE.

Параметр profile взаимоисключающий с параметрами aws_access_key, aws_secret_key и security_token.

region

aliases: aws_region, ec2_region

string

Используемая AWS-область.

Для глобальных сервисов, таких как IAM, Route53 и CloudFront, параметр region игнорируется.

Также можно использовать переменные окружения AWS_REGION или EC2_REGION.

Дополнительную информацию см. в документации Amazon AWS http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region.

Алиас ec2_region устарел и будет удален после 2024-12-01.

Поддержка переменной окружения EC2_REGION устарела и будет удалена после 2024-12-01.

secret_key

aliases: aws_secret_access_key, aws_secret_key, ec2_secret_key

string

Секретный ключ доступа AWS.

Дополнительную информацию об access токенах см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY, или EC2_SECRET_KEY в порядке убывания приоритета.

Параметры secret_key и profile взаимоисключающие.

Алиас aws_secret_access_key добавлен в релизе 5.1.0 для согласованности с AWS botocore SDK.

Алиас ec2_secret_key устарел и будет удален после 2024-12-01.

Поддержка переменной окружения EC2_SECRET_KEY устарела и будет удалена после 2024-12-01.

session_token

aliases: aws_session_token, security_token, aws_security_token, access_token

string

Токен сессии AWS STS для использования с временными учетными данными.

Дополнительную информацию об access токенах см. в документации AWS https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys.

Также можно использовать переменные окружения AWS_SESSION_TOKEN, AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN в порядке убывания приоритета.

Параметры security_token и profile взаимоисключающие.

Алиасы aws_session_token и session_token добавлены в релизе 3.2.0, параметр был переименован из security_token в session_token в релизе 6.0.0.

Алиасы security_token, aws_security_token и access_token устарели и будут удалены после 2024-12-01.

Поддержка переменных окружения EC2_SECRET_KEY и AWS_SECURITY_TOKEN устарела и будет удалена после 2024-12-01.

storage_class

string

добавлено в community.aws 1.5.0

Класс хранения, который будет связан с каждым объектом, добавленным в ведро S3.

Варианты:

  • "STANDARD" ← (по умолчанию)
  • "REDUCED_REDUNDANCY"
  • "STANDARD_IA"
  • "ONEZONE_IA"
  • "INTELLIGENT_TIERING"
  • "GLACIER"
  • "DEEP_ARCHIVE"
  • "OUTPOSTS"

validate_certs

boolean

При значении false, сертификаты SSL не будут проверены для связи с API AWS.

Установка validate_certs=false категорически не рекомендуется. В качестве альтернативы, установите aws_ca_bundle.

Варианты:

  • false
  • true ← (по умолчанию)

Примечания

Примечание

  • Внимание: Для модулей переменные окружения и конфигурационные файлы считываются из контекста Ansible 'хост', а не 'контроллер'. Поэтому файлы могут потребоваться скопировать на ‘хост’. Для плагинов поиска и подключения переменные окружения и конфигурационные файлы считываются из контекста Ansible 'контроллер', а не 'хост'.
  • AWS SDK (boto3), используемый Ansible, также может считывать значения по умолчанию для учетных данных и других настроек, таких как область, из своих конфигурационных файлов в контексте Ansible ‘хост’ (обычно ~/.aws/credentials). Подробнее см. https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html.

Примеры

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

- name: basic upload using the glacier storage class
  community.aws.s3_sync:
    bucket: tedder
    file_root: roles/s3/files/
    storage_class: GLACIER

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

- 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"
    storage_class: "GLACIER"
    include: "*"
    exclude: "*.txt,.*"

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

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

Ключ

Описание

filelist_actionable

список / элементы=строка

список файлов (словари) файлов, которые будут загружены после принятия стратегического решения

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477931256, "s3_path": "s3sync/policy.json", "whysize": "151 / 151", "whytime": "1477931256 / 1477929260"}]

filelist_initial

список / элементы=строка

список файлов (словари) из начальной операции подстановки

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "modified_epoch": 1477416706}]

filelist_local_etag

список / элементы=строка

список файлов (словари), включающий рассчитанный локальный etag

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706, "s3_path": "s3sync/policy.json"}]

filelist_s3

список / элементы=строка

список файлов (словари), включающий информацию о ранее загруженных версиях

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706, "s3_path": "s3sync/policy.json"}]

filelist_typed

список / элементы=строка

список файлов (словари) с рассчитанными или переопределёнными типами MIME

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "mime_type": "application/json", "modified_epoch": 1477416706}]

uploads

список / элементы=строка

список файлов (словари) файлов, которые были фактически загружены

Возвращается: всегда

Пример: [{"bytes": 151, "chopped_path": "policy.json", "fullpath": "roles/cf/files/policy.json", "s3_path": "s3sync/policy.json", "whysize": "151 / 151", "whytime": "1477931637 / 1477931489"}]

Авторы

  • Ted Timmons (@tedder)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходные коды)
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/aws/s3_sync_module.html

Spec-Zone.ru

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