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 Bundle) для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: CA Bundle считывается со стороны «модуля» и, возможно, требует явного копирования с контроллера, если модуль не запускается локально. | |
| 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_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, созданного во время выполнения книги сценариев. Переменная среды 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 string | Конечная точка URL-адреса S3 для использования с Ceph, Eucalyptus и fakes3 и т. д. В противном случае предполагается AWS. псевдонимы: S3_URL | |
| security_token string | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если параметр profile задан, этот параметр игнорируется. Передача параметров security_token и profile одновременно устарела, и эти параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | |
| src path | Путь к исходному файлу при выполнении операции PUT. Для операции PUT необходимо указать либо content, либо content_base64, либо src. В противном случае параметр игнорируется. | |
| validate_certs boolean |
| Если значение «no», сертификаты SSL не будут проверятся для версий boto >= 2.6.0. |
| version string | Идентификатор версии объекта внутри ведра. Может быть использован для получения определенной версии файла, если в целевом ведре включена функция управления версиями. |
Примечания
Примечание
- Если параметры не установлены в модуле, можно использовать следующие переменные среды в порядке убывания приоритета
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 string | (для операции getstr) | Содержимое объекта в виде строки. Пример: Привет, мир! |
| expiry integer | (для операции geturl) | Количество секунд, в течение которых предварительно подписанный URL-адрес действителен. Пример: 600 |
| msg string | всегда | Сообщение, указывающее состояние операции. Пример: Операция PUT завершена |
| s3_keys list / elements=string | (для операции list) | Список ключей объектов. Пример: ['prefix1/', 'prefix1/key1', 'prefix1/key2'] |
| url string | (для операций 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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/amazon/aws/aws_s3_module.html