Spec-Zone.ru › Ansible 2.8

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

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

Описание

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

Требования

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

  • boto
  • boto3
  • botocore
  • python >= 2.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
aws_access_key
строка
ID ключа доступа 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
логический тип
добавлен в 2.0
    Варианты:
  • нет
  • да ←
При установке для режима PUT запрашивает шифрование на стороне сервера.
encryption_kms_key_id
-
добавлен в 2.7
ID ключа KMS для использования при шифровании объектов с помощью aws:kms шифрования. Игнорируется, если шифрование не aws:kms.
encryption_mode
-
добавлен в 2.7
    Варианты:
  • AES256 ←
  • aws:kms
Какой режим шифрования использовать, если encrypt задан
expiration
-
По умолчанию:
600
Срок действия (в секундах) URL, сгенерированного и возвращенного S3/Walrus при выполнении операции mode=put или mode=geturl.
headers
-
добавлен в 2.0
Настраиваемые заголовки для операции PUT в виде словаря «ключ=значение» и «ключ=значение,ключ=значение».
ignore_nonexistent_bucket
логический тип
добавлен в 2.3
    Варианты:
  • нет
  • да
Переопределяет начальные проверки существования ведра в случае, если ограничения налагаются политиками ведра или IAM. Пример: пользователь может иметь разрешение GetObject, но не другие разрешения. В этом случае использование опции mode: get завершится неудачей без явного указания ignore_nonexistent_bucket: True.
marker
-
добавлен в 2.0
Указывает ключ для начала использования в режиме списка. Ключи объектов возвращаются в алфавитном порядке, начиная с ключа после маркерного ключа в порядке.
max_keys
-
добавлен в 2.0
По умолчанию:
1000
Максимальное количество результатов, возвращаемых в режиме списка. Установите это значение, если требуется получить меньше, чем 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
-
добавлен в 2.0
По умолчанию:
"частный"
Эта опция позволяет пользователю установить разрешения по умолчанию для создаваемого объекта/ведра. Возможные разрешения: «частный», «общедоступное чтение», «общедоступное чтение-запись», «авторизованное чтение» для ведра или «частный», «общедоступное чтение», «общедоступное чтение-запись», «aws-exec-read», «авторизованное чтение», «владелец_ведра_чтение», «владелец_ведра_полные_права» для объекта. Можно указывать несколько разрешений в виде списка.
prefix
-
добавлен в 2.0
По умолчанию:
""
Ограничивает ответ ключами, начинающимися с указанного префикса, для режима списка
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
-
добавлен в 2.0
По умолчанию:
0
Сколько раз повторить попытку при исправлении ошибки до фактического отказа.
rgw
логический тип
добавлен в 2.2
    Варианты:
  • нет ←
  • да
Включить поддержку 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
boolean
    Выборы:
  • no
  • yes ←
Если установлено значение "no", сертификаты SSL не будут проверены для версий boto ≥ 2.6.0.
version
-
добавлен в 2.0
Идентификатор версии объекта внутри ведра. Может использоваться для получения определённой версии файла, если версия файла включена в целевом ведре.

Примечания

Примечание

  • В версии 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)
количество секунд, в течение которых предварительно созданная ссылка действительна

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

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

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

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


Статус

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

Поддержка Red Hat

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

Авторы

  • 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.8/modules/aws_s3_module.html

Spec-Zone.ru

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