Spec-Zone.ru › Ansible 2.4

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

Новое в версии 2.3.

  • Описание
  • Требования (для хоста, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Примечания
    • Статус

Описание

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

Требования (для хоста, на котором выполняется модуль)

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

Параметры

параметр обязательный значение по умолчанию варианты комментарии
aws_access_key
нет
Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY.
псевдонимы: ec2_access_key, access_key
aws_secret_key
нет
Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY.
псевдонимы: ec2_secret_key, secret_key
bucket
да
Имя ведра.
cache_control
(добавлено в 2.4)
нет
Это строка.
Заголовок Cache-Control, устанавливаемый для загружаемых объектов.
Директивы разделены запятыми.
delete
(добавлено в 2.4)
нет
Удаляет удалённые файлы, которые существуют в ведре, но отсутствуют в корневом каталоге файлов.
ec2_url
нет
URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковое имеется.
exclude
нет .*
Сопоставление файлов по шаблону оболочки.
Используется после include для удаления файлов (например, пропустить "*.txt")
Для нескольких шаблонов разделяйте их запятыми.
file_change_strategy
нет date_size
  • force
  • checksum
  • date_size
Метод определения различий для синхронизации только изменений. В отличие от rsync, файлы не обновляются – они полностью пропускаются или полностью загружаются.
date_size будет загружать, если размеры файлов не совпадают или если дата изменения локального файла новее, чем версия в S3.
checksum сравнивает значения etag на основе реализации s3 фрагментированных md5.
force всегда будет загружать все файлы.
file_root
да
Путь к файлам/каталогам для синхронизации. Это локальный путь.
Этот корневой путь удаляется из имени ключа, поэтому подкаталоги останутся в виде ключей.
include
нет *
Сопоставление файлов по шаблону оболочки.
Используется перед exclude для определения допустимых файлов (например, только "*.gif")
Для нескольких шаблонов разделяйте их запятыми.
key_prefix
нет
В дополнение к пути к файлам, добавляет этот префикс к пути в S3. Модуль добавит слеш в конец префикса, если это необходимо.
mime_map
нет
Элемент словаря, сопоставляющий расширение с типом MIME. Это переопределит любой тип MIME по умолчанию/определённый по анализу. Например {".txt": "application/text", ".yml": "appication/text"}
mode
да push
  • push
Направление синхронизации.
permission
нет
  • private
  • public-read
  • public-read-write
  • authenticated-read
  • aws-exec-read
  • bucket-owner-read
  • bucket-owner-full-control
Установленный ACL для синхронизированных файлов.
Изменение этого ACL влияет только на недавно синхронизированные файлы, оно не вызывает полную перезагрузку.
profile
(добавлено в 1.6)
нет
Использует профиль boto. Работает только с boto >= 2.24.0.
region
нет
Регион AWS, который нужно использовать. Если не указан, используется значение переменной среды AWS_REGION или EC2_REGION, если таковое имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region
security_token
(добавлено в 1.6)
нет
Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.
псевдонимы: access_token
validate_certs
(добавлено в 1.5)
нет да
  • да
  • нет
При значении "нет" сертификаты SSL для boto версий >= 2.6.0 не будут проверятся.

Примеры

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

- name: all the options
  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
список файлов (списки словарей) файлов, которые будут загружены после принятия решения по стратегии
всегда список [{'s3_path': 's3sync/policy.json', 'whysize': '151 / 151', 'modified_epoch': 1477931256, 'bytes': 151, 'whytime': '1477931256 / 1477929260', 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'mime_type': 'application/json'}]
filelist_initial
список файлов (списки словарей) из начального сопоставления по шаблонам
всегда список [{'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151}]
filelist_local_etag
список файлов (списки словарей), включая рассчитанный локальный etag
всегда список [{'s3_path': 's3sync/policy.json', 'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}]
filelist_s3
список файлов (списки словарей), включая информацию о ранее загруженных версиях
всегда список [{'s3_path': 's3sync/policy.json', 'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}]
filelist_typed
список файлов (списки словарей) с рассчитанными или переопределёнными типами MIME
всегда список [{'modified_epoch': 1477416706, 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'mime_type': 'application/json'}]
uploaded
список файлов (списки словарей) файлов, которые были фактически загружены
всегда список [{'s3_path': 's3sync/policy.json', 'whysize': '151 / 151', 'fullpath': 'roles/cf/files/policy.json', 'chopped_path': 'policy.json', 'bytes': 151, 'whytime': '1477931637 / 1477931489'}]

Примечания

Примечание

  • Если параметры не заданы в модуле, следующие переменные окружения могут быть использованы в порядке убывания приоритета AWS_URL или EC2_URL, 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
  • Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. http://boto.readthedocs.org/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION можно использовать для указания региона AWS, если он требуется, но его также можно настроить в файле конфигурации boto

Статус

Этот модуль помечен как превью, что означает, что он не гарантирует обратную совместимость интерфейса.

Для помощи в разработке модулей, если вы захотите, прочитайте Справочная информация по сообществу и содействие, Тестирование Ansible и Разработка модулей.

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

Spec-Zone.ru

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