amazon.aws.ec2_ami – Создание или удаление образа (AMI) в ec2
Примечание
Этот плагин входит в коллекцию amazon.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install amazon.aws.
Для использования в книге задач укажите: amazon.aws.ec2_ami.
Новое в версии 1.0.0: из amazon.aws
Обзор
- Регистрирует или удаляет ec2 образы.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| architecture строка | По умолчанию: "x86_64" | Архитектура целевого образа для регистрации | |
| 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 | ||
| billing_products список / элементы=строка | Список допустимых кодов выставления счетов. Используется для работы с действительными учетными записями поставщиков AWS Marketplace. | ||
| debug_botocore_endpoint_logs логический тип |
| Используйте логгер botocore.endpoint для анализа уникальных (а не суммарных) API-вызовов "ресурс:действие", выполненных во время задачи, выведя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода общего списка, выполненного во время выполнения плана. Переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS также может быть использована. | |
| delete_snapshot логический тип |
| Удалять снимки при дерегистрации AMI. | |
| description строка | Строка с описанием содержимого и назначения AMI для человека. | ||
| device_mapping список / элементы=словарь | Список хешей устройств/словарей с пользовательскими конфигурациями (те же параметры block-device-mapping). | ||
| delete_on_termination логический тип |
| Указывает, должен ли диск автоматически удаляться при завершении работы экземпляра. | |
| device_name строка / обязательно | Имя устройства. Например /dev/sda.псевдонимы: DeviceName | ||
| encrypted логический тип |
| Указывает, должен ли том быть зашифрован. | |
| iops целое число | При использовании типа тома io1, это устанавливает количество IOPS, выделенных для тома. | ||
| no_device логический тип |
| Исключает указанное устройство из отображения блочных устройств AMI. Псевдоним NoDevice устарел и будет удален после 2022-06-01.псевдонимы: NoDevice | |
| snapshot_id строка | Идентификатор снимка. | ||
| virtual_name строка | Виртуальное имя устройства. См. документацию AWS для более подробной информации https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html. Псевдоним VirtualName устарел и будет удален после 2022-06-01.псевдонимы: VirtualName | ||
| volume_size целое число | Размер тома (в ГБ). псевдонимы: size | ||
| volume_type строка | Тип тома. По умолчанию gp2, если не задан. | ||
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая есть. псевдонимы: aws_endpoint_url, endpoint_url | ||
| enhanced_networking логический тип |
| Логический тип, указывающий, включено ли расширенное сетевое взаимодействие с ENA. | |
| image_id строка | Идентификатор образа для дерегистрации. | ||
| image_location строка | Расположение образа в s3 для использования в AMI. | ||
| instance_id строка | Идентификатор экземпляра для создания AMI. | ||
| kernel_id строка | Идентификатор целевого ядра образа для регистрации. | ||
| launch_permissions словарь | Пользователи и группы, которые должны иметь возможность запуска AMI. Ожидается словарь с ключом user_ids и/или group_names. user_ids должен быть списком идентификаторов учетных записей. group_name должен быть списком групп, "all" — единственное допустимое значение на данный момент. Вы должны передать все необходимые разрешения на запуск, если хотите изменить существующие разрешения на запуск (передача только групп удалит всех пользователей). | ||
| name строка | Имя нового AMI. | ||
| no_reboot логический тип |
| Флаг, указывающий, что процесс сборки не должен пытаться остановить экземпляр перед сборкой. Если этот флаг равен True, ответственность за поддержание целостности файловой системы возлагается на владельца экземпляра. | |
| 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 | ||
| purge_tags логический тип |
| Удалить существующие теги, которые не переданы в параметре tags | |
| ramdisk_id строка | Идентификатор RAM-диска. | ||
| region строка | Регион AWS. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | ||
| root_device_name строка | Имя корневого устройства образа для регистрации. | ||
| security_token строка | AWS STS-токен безопасности. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если параметр profile задан, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и будет сделано взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | ||
| sriov_net_support строка | Установите значение "simple", чтобы включить расширенную сеть с интерфейсом Intel 82599 Virtual Function для AMI и любых экземпляров, созданных на основе AMI. | ||
| state строка |
| Регистрация или дерегистрация AMI. | |
| tags словарь | Словарь тегов для добавления к новому образу; '{"ключ":"значение"}' и '{"ключ":"значение","ключ":"значение"}' | ||
| validate_certs boolean |
| При установке в значение "нет", сертификаты SSL для версий boto >= 2.6.0 не будут проверяться. | |
| virtualization_type строка | По умолчанию: "hvm" | Тип виртуализации регистрируемого образа. | |
| wait boolean |
| Ожидать, пока AMI не перейдет в состояние 'available' перед возвратом. | |
| wait_timeout целое число | По умолчанию: 1200 | Время ожидания (в секундах), после которого ожидание прекратится. | |
Примечания
Примечание
- Если параметры не установлены в модуле, следующие переменные среды могут быть использованы в порядке убывания приоритета
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
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: Basic AMI Creation
amazon.aws.ec2_ami:
instance_id: i-xxxxxx
wait: yes
name: newtest
tags:
Name: newtest
Service: TestService
- name: Basic AMI Creation, without waiting
amazon.aws.ec2_ami:
instance_id: i-xxxxxx
wait: no
name: newtest
- name: AMI Registration from EBS Snapshot
amazon.aws.ec2_ami:
name: newtest
state: present
architecture: x86_64
virtualization_type: hvm
root_device_name: /dev/xvda
device_mapping:
- device_name: /dev/xvda
volume_size: 8
snapshot_id: snap-xxxxxxxx
delete_on_termination: true
volume_type: gp2
- name: AMI Creation, with a custom root-device size and another EBS attached
amazon.aws.ec2_ami:
instance_id: i-xxxxxx
name: newtest
device_mapping:
- device_name: /dev/sda1
size: XXX
delete_on_termination: true
volume_type: gp2
- device_name: /dev/sdb
size: YYY
delete_on_termination: false
volume_type: gp2
- name: AMI Creation, excluding a volume attached at /dev/sdb
amazon.aws.ec2_ami:
instance_id: i-xxxxxx
name: newtest
device_mapping:
- device_name: /dev/sda1
size: XXX
delete_on_termination: true
volume_type: gp2
- device_name: /dev/sdb
no_device: yes
- name: Deregister/Delete AMI (keep associated snapshots)
amazon.aws.ec2_ami:
image_id: "{{ instance.image_id }}"
delete_snapshot: False
state: absent
- name: Deregister AMI (delete associated snapshots too)
amazon.aws.ec2_ami:
image_id: "{{ instance.image_id }}"
delete_snapshot: True
state: absent
- name: Update AMI Launch Permissions, making it public
amazon.aws.ec2_ami:
image_id: "{{ instance.image_id }}"
state: present
launch_permissions:
group_names: ['all']
- name: Allow AMI to be launched by another account
amazon.aws.ec2_ami:
image_id: "{{ instance.image_id }}"
state: present
launch_permissions:
user_ids: ['123456789012']
Значения возврата
Общие значения возврата описаны здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| architecture строка | при создании или при наличии AMI | Архитектура образа. Пример: x86_64 |
| block_device_mapping словарь | при создании или при наличии AMI | Схема отображения блочных устройств, связанная с образом. Пример: {'/dev/sda1': {'delete_on_termination': True, 'encrypted': False, 'size': 10, 'snapshot_id': 'snap-1a03b80e7', 'volume_type': 'standard'}} |
| creationDate строка | при создании или при наличии AMI | Дата создания образа. Пример: 2015-10-15T22:43:44.000Z |
| description строка | при создании или при наличии AMI | Описание образа. Пример: nat-server |
| hypervisor строка | при создании или при наличии AMI | Тип гипервизора. Пример: xen |
| image_id строка | при создании или при наличии AMI | ID образа. Пример: ami-1234abcd |
| is_public boolean | при создании или при наличии AMI | Является ли образ публичным. |
| launch_permission список / элементы=строка | при создании или при наличии AMI | Разрешения, позволяющие другим учетным записям получить доступ к AMI. Пример: [{'group': 'all'}] |
| location строка | при создании или при наличии AMI | Расположение образа. Пример: 315210894379/nat-server |
| name строка | при создании или при наличии AMI | Имя AMI образа. Пример: nat-server |
| ownerId строка | при создании или при наличии AMI | Владелец образа. Пример: 435210894375 |
| platform строка | при создании или при наличии AMI | Платформа образа. |
| root_device_name строка | при создании или при наличии AMI | Имя корневого устройства образа. Пример: /dev/sda1 |
| root_device_type строка | при создании или при наличии AMI | Тип корневого устройства образа. Пример: ebs |
| snapshots_deleted список / элементы=строка | после дерегистрации AMI, если delete_snapshot=true | Список идентификаторов снимков, удаленных после дерегистрации образа. Пример: ['snap-fbcccb8f', 'snap-cfe7cdb4'] |
| state строка | при создании или при наличии AMI | Состояние образа. Пример: available |
| tags словарь | при создании или при наличии AMI | Словарь тегов, назначенных образу. Пример: {'Env': 'devel', 'Name': 'nat-server'} |
| virtualization_type строка | при создании или при наличии AMI | Тип виртуализации образа. Пример: hvm |
Авторы
- Evan Duffield (@scicoin-project) <eduffield@iacquire.com>
- Constantin Bugneac (@Constantin07) <constantin.bugneac@endava.com>
- Ross Williams (@gunzy83) <gunzy83au@gmail.com>
- Willem van Ketwich (@wilvk) <willvk@gmail.com>
© 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/ec2_ami_module.html