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 строка |
| Режим шифрования, который использовать, если 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 строка / обязательно |
| Переключает поведение модуля между 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