Spec-Zone.ru › Ansible 2.9

aws_s3 – управление объектами в S3

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

Описание

  • Этот модуль позволяет пользователю управлять корзинами S3 и объектами в них. Он включает поддержку создания и удаления объектов и корзин, получения объектов в виде файлов или строк и генерации ссылок для скачивания. Этот модуль зависит от библиотек boto3 и botocore.

Требования

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

  • boto
  • boto3
  • botocore
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
aws_access_key
строка
Идентификатор ключа доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY.

Псевдонимы: ec2_access_key, access_key
aws_secret_key
строка
Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_KEY.

Псевдонимы: ec2_secret_key, secret_key
bucket
- / обязательно
Имя ведра.
debug_botocore_endpoint_logs
булево
добавлено в 2.8
    Варианты:
  • нет ←
  • да
Использовать логирование botocore.endpoint для анализа уникальных (а не суммарных) API-вызовов «ресурс:действие», выполняемых во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в итоговый список, созданный во время выполнения плейбука. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS.
dest
-
Путь к целевому файлу при загрузке объекта/ключа с помощью операции GET.
dualstack
булево
добавлено в 2.7
    Варианты:
  • нет ←
  • да
Включает Amazon S3 Dual-Stack Endpoints, что позволяет использовать S3 для связи с использованием как IPv4, так и IPv6.
Требуется как минимум версия botocore 1.4.45.
ec2_url
строка
URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион обязателен. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковое имеется.
encrypt
булево
    Варианты:
  • нет
  • да ←
При установленном значении для режима PUT запрашивает шифрование на стороне сервера.
encryption_kms_key_id
-
добавлено в 2.7
Идентификатор ключа KMS для использования при шифровании объектов с помощью aws:kms шифрования. Игнорируется, если шифрование не aws:kms
encryption_mode
-
добавлено в 2.7
    Варианты:
  • AES256 ←
  • aws:kms
Режим шифрования, который использовать, если encrypt задан
expiration
-
По умолчанию:
600
Предельное время (в секундах) для URL, сгенерированного и возвращенного S3/Walrus при выполнении операций mode=put или mode=geturl.
headers
-
Пользовательские заголовки для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'.
ignore_nonexistent_bucket
булево
    Варианты:
  • нет
  • да
Переопределяет начальный поиск ведра в случае, если права ведра или IAM политики ограничительны. Например, пользователь может иметь разрешение GetObject, но не другие разрешения. В этом случае использование опции mode: get завершится ошибкой без указания ignore_nonexistent_bucket: True.
marker
-
Указывает ключ, с которого начать при использовании режима list. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа после маркерного в порядке.
max_keys
-
По умолчанию:
1000
Максимальное количество результатов для возврата в режиме list, установите это значение, если нужно получить меньше, чем стандартные 1000 ключей.
metadata
-
Метаданные для операции PUT в виде словаря 'ключ=значение' и 'ключ=значение,ключ=значение'.
mode
- / обязательно
    Варианты:
  • получить
  • загрузить
  • удалить
  • создать
  • получить_url
  • получить_строку
  • удалить_объект
  • список
Переключает поведение модуля между режимами загрузить (загрузка), получить (скачивание), получить_url (возвратить url скачивания, Ansible 1.3+), получить_строку (скачать объект как строку (1.3+)), список (список ключей, Ansible 2.0+), создать (ведро), удалить (ведро), и удалить_объект (удалить объект, Ansible 2.0+).
object
-
Имя ключа объекта внутри ведра. Может использоваться для создания «виртуальных каталогов», см. примеры.
overwrite
-
По умолчанию:
"всегда"
Принудительно перезаписывать локально в файловой системе или удаленно объект/ключ. Используется с операциями PUT и GET. Булево или одно из [всегда, никогда, другое], true равно 'всегда', false равно 'никогда', нововведение в 2.0. При значении 'другое' сумма md5 локального файла сравнивается с 'ETag' объекта/ключа в S3. ETag может или не может быть хешем MD5 данных объекта. См. заголовок ответа ETag здесь https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html

Псевдонимы: force
permission
-
По умолчанию:
"private"
Эта опция позволяет пользователю установить предопределенные права доступа на создаваемый объект/ведро. Права доступа, которые можно установить, это 'private', 'public-read', 'public-read-write', 'authenticated-read' для ведра или 'private', 'public-read', 'public-read-write', 'aws-exec-read', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control' для объекта. Несколько прав доступа могут быть указаны как список.
prefix
-
По умолчанию:
""
Ограничивает ответ ключами, которые начинаются с указанного префикса для режима list
profile
строка
Использует профиль boto. Работает только с boto >= 2.24.0.
region
строка
AWS регион для создания ведра. Если не задан, проверяются значения переменных окружения AWS_REGION и EC2_REGION, а затем настройки aws_region и ec2_region в файле конфигурации Boto. Если ни один из них не задан, регион по умолчанию S3 Location: US Standard. До Ansible 1.8 этот параметр можно было указать, но он не имел эффекта.

Псевдонимы: aws_region, ec2_region
retries
-
По умолчанию:
0
При возобновляемой ошибке сколько раз повторить попытку, прежде чем фактически провалиться.
rgw
булево
    Варианты:
  • нет ←
  • да
Включить поддержку Ceph RGW S3. Эта опция требует явного указания URL через s3_url.
s3_url
-
Конечная точка URL S3 для использования с Ceph, Eucalyptus и fakes3 и т.д. В противном случае предполагается AWS.

Псевдонимы: S3_URL
security_token
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

Псевдонимы: access_token
src
-
Путь к исходному файлу при выполнении операции PUT.
validate_certs
булево
    Варианты:
  • нет
  • да ←
Если установлено «нет», сертификаты SSL для версий boto >= 2.6.0 не будут проверены.
version
-
Идентификатор версии объекта внутри ведра. Может использоваться для получения определенной версии файла, если в целевом ведре включено управление версиями.

Примечания

Примечание

  • В версии 2.4 этот модуль был переименован из s3 в aws_s3.
  • Если параметры не заданы внутри модуля, можно использовать следующие переменные окружения в порядке убывания приоритета 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), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
  • AWS_REGION или EC2_REGION можно использовать для указания региона AWS, если это необходимо, но это также можно настроить в файле конфигурации boto

Примеры

- name: Simple PUT operation
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put

- name: Simple PUT operation in Ceph RGW S3
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    rgw: true
    s3_url: "http://localhost:8000"

- name: Simple GET operation
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    dest: /usr/local/myfile.txt
    mode: get

- name: Get a specific version of an object.
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    version: 48c9ee5131af7a716edc22df9772aa6f
    dest: /usr/local/myfile.txt
    mode: get

- name: PUT/upload with metadata
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    metadata: 'Content-Encoding=gzip,Cache-Control=no-cache'

- name: PUT/upload with custom headers
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put
    headers: 'x-amz-grant-full-control=emailAddress=owner@example.com'

- name: List keys simple
  aws_s3:
    bucket: mybucket
    mode: list

- name: List keys all options
  aws_s3:
    bucket: mybucket
    mode: list
    prefix: /my/desired/
    marker: /my/desired/0023.txt
    max_keys: 472

- name: Create an empty bucket
  aws_s3:
    bucket: mybucket
    mode: create
    permission: public-read

- name: Create a bucket with key as directory, in the EU region
  aws_s3:
    bucket: mybucket
    object: /my/directory/path
    mode: create
    region: eu-west-1

- name: Delete a bucket and all contents
  aws_s3:
    bucket: mybucket
    mode: delete

- name: GET an object but don't download if the file checksums match. New in 2.0
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    dest: /usr/local/myfile.txt
    mode: get
    overwrite: different

- name: Delete an object from a bucket
  aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    mode: delobj

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

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

Ключ Возвращаемое значение Описание
contents
строка
(для операции getstr)
содержимое объекта в виде строки

Пример:
Привет, мир!
expiry
целое число
(для операции geturl)
количество секунд, в течение которых действителен предварительно подписанный URL

Пример:
600
msg
строка
всегда
сообщение, указывающее статус операции

Пример:
Операция PUT завершена
s3_keys
список
(для операции list)
список ключей объектов

Пример:
['prefix1/', 'prefix1/key1', 'prefix1/key2']
url
строка
(для операций put и geturl)
URL объекта

Пример:
https://my-bucket.s3.amazonaws.com/my-key.txt?AWSAccessKeyId=<access-key>&Expires=1506888865&Signature=<signature>


Статус

  • Этот модуль гарантирует обратную совместимость изменений интерфейса в будущем. [stableinterface]
  • Этот модуль поддерживается командой Ansible Core. [core]

Поддержка Red Hat

Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat: Red Hat Knowledge Base article.

Авторы

  • Lester Wade (@lwade)
  • Sloane Hertel (@s-hertel)

Подсказка

Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.

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

Spec-Zone.ru

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