Spec-Zone.ru › Ansible 2.11

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

Примечание

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

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

Для использования в книге задач укажите: amazon.aws.aws_s3.

Новое в версии 1.0.0: из amazon.aws

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

Обзор

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

Примечание

Для этого модуля существует соответствующий плагин действий.

Требования

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

  • boto
  • boto3
  • botocore
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
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
строка / обязательно
Имя ведра.
content
строка
добавлен в 1.3.0 amazon.aws
Содержимое для размещения в объекте.
Значение параметра будет обработано как строка и преобразовано в UTF-8 перед отправкой в S3. Для отправки двоичных данных используйте параметр content_base64.
Для операции PUT необходимо указать content, content_base64 или src. В противном случае параметр игнорируется.
content_base64
строка
добавлен в 1.3.0 amazon.aws
Двоичные данные в формате base64 для размещения в объекте.
Используйте этот параметр, если нужно поместить сырые двоичные данные, не забывая о кодировании в base64.
Для операции PUT необходимо указать content, content_base64 или src. В противном случае параметр игнорируется.
debug_botocore_endpoint_logs
логический тип
    Варианты:
  • нет ←
  • да
Используйте регистратор botocore.endpoint для анализа уникальных (а не общих) API-вызовов "resource:action" во время выполнения задачи, выводя их в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, созданного во время выполнения playbook. Переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована.
dest
путь
Путь к целевому файлу при загрузке объекта/ключа с помощью операции GET.
dualstack
логический тип
    Варианты:
  • нет ←
  • да
Включает Amazon S3 Dual-Stack Endpoints, позволяющие осуществлять S3-связь с использованием как IPv4, так и IPv6.
Требуется как минимум версия botocore 1.4.45.
ec2_url
строка
URL для подключения к EC2 или вашей облачной платформе Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если она есть.

псевдонимы: aws_endpoint_url, endpoint_url
encrypt
логический тип
    Варианты:
  • нет
  • да ←
При установке для режима PUT запрашивает шифрование на стороне сервера.
encryption_kms_key_id
строка
Идентификатор ключа KMS, используемого при шифровании объектов с помощью encrypting=aws:kms. Игнорируется, если encryption не aws:kms.
encryption_mode
строка
    Варианты:
  • AES256 ←
  • aws:kms
Режим шифрования, который использовать, если encrypt=true.
expiry
целое число
Значение по умолчанию:
600
Предельное время (в секундах) для URL, сгенерированного и возвращенного S3/Walrus при выполнении операций mode=put или mode=geturl.

псевдонимы: expiration
headers
словарь
Пользовательские заголовки для операции PUT в виде словаря key=value и key=value,key=value.
ignore_nonexistent_bucket
логический тип
    Варианты:
  • нет ←
  • да
Переопределяет исходный поиск ведра в случае ограничений в ведре или политиках IAM. Пример: пользователь может иметь разрешение GetObject, но не другие разрешения. В этом случае использование режима mode: get завершится ошибкой без указания ignore_nonexistent_bucket=true.
marker
строка
Указывает ключ, с которого начинать при использовании режима списка. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа после маркера.
max_keys
целое число
Значение по умолчанию:
1000
Максимальное количество результатов, возвращаемых в режиме списка. Установите это значение, если нужно получить меньше, чем 1000 ключей по умолчанию.
metadata
словарь
Метаданные для операции PUT в виде словаря key=value и key=value,key=value.
mode
строка / обязательно
    Варианты:
  • получение
  • размещение
  • удаление
  • создание
  • получение_url
  • получение_строки
  • удаление_объекта
  • список
Переключает поведение модуля между put (загрузка), get (скачивание), geturl (возврат URL для скачивания, Ansible 1.3+), getstr (скачивание объекта как строки (1.3+)), list (список ключей, Ansible 2.0+), create (ведро), delete (ведро) и удаление_объекта (удаление объекта, Ansible 2.0+).
object
строка
Имя ключа объекта внутри ведра. Может использоваться для создания "виртуальных каталогов", см. примеры.
overwrite
строка
Значение по умолчанию:
"всегда"
Принудительно перезаписывает локально на файловой системе или удаленно объект/ключ. Используется с операциями PUT и GET.
Должен быть булевым значением, always, never или different.
true эквивалентно always.
false равно never.
Когда это значение установлено в different, вычисляется контрольная сумма 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
строка
Значение по умолчанию:
""
Ограничивает ответ ключами, начинающимися с указанного префикса для режима списка.
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
целое число
Значение по умолчанию:
0
Сколько раз повторить попытку при восстановимом сбое, прежде чем действительно потерпеть неудачу.

псевдонимы: retry
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.
Если параметр profile задан, этот параметр игнорируется.
Передача параметров security_token и profile одновременно устарела, и параметры будут сделаны взаимоисключающими после 2022-06-01.

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

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета 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: Simple PUT operation
  amazon.aws.aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    src: /usr/local/myfile.txt
    mode: put

- name: PUT operation from a rendered template
  aws_s3:
    bucket: mybucket
    object: /object.yaml
    content: "{{ lookup('template', 'templates/object.yaml.j2') }}"
    mode: put

- name: Simple PUT operation in Ceph RGW S3
  amazon.aws.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
  amazon.aws.aws_s3:
    bucket: mybucket
    object: /my/desired/key.txt
    dest: /usr/local/myfile.txt
    mode: get

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

- name: PUT/upload with metadata
  amazon.aws.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
  amazon.aws.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
  amazon.aws.aws_s3:
    bucket: mybucket
    mode: list

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

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

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

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

- name: GET an object but don't download if the file checksums match. New in 2.0
  amazon.aws.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
  amazon.aws.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>


Авторы

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

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

Spec-Zone.ru

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