Spec-Zone.ru › Ansible 2.10

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
строка
    Варианты:
  • 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.
END_OF_DOCUMENT_MARKER
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
  • да ←
Если значение «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

Spec-Zone.ru

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