ec2_instance - Создание и управление экземплярами EC2
Новая в версии 2.5.
Обзор
- Сбор данных об экземплярах ec2 в AWS
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| availability_zone | Укажите зону доступности для использования подсети по умолчанию. Полезно, если не указан параметр vpc_subnet_id. Если не указана подсеть, ENI или зона доступности, по умолчанию будет использоваться подсеть в VPC по умолчанию в первой зоне доступности (в алфавитном порядке). | |
| aws_access_key | Значение по умолчанию: None | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key |
| aws_secret_key | Значение по умолчанию: None | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key |
| cpu_credit_specification |
| Для экземпляров серии T2 выберите, разрешить ли увеличение платы за процессорные кредиты, если пул по умолчанию исчерпан. Выберите unlimited, чтобы разрешить покупку дополнительных процессорных кредитов. |
| detailed_monitoring | Разрешить сбор подробных метрик cloudwatch, что позволит получить более подробные оповещения. | |
| ebs_optimized | Использовать оптимизированные EBS-тома, см. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
| |
| ec2_url | Значение по умолчанию: None | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она существует. |
| filters | Значение по умолчанию: {u'subnet-id': u'<provided-or-default subnet>', u'tag:Name': u'<provided-Name-attribute>'} | Словарь фильтров для применения при определении соответствия существующих экземпляров и необходимости их изменения. Каждый элемент словаря содержит ключ фильтра и значение фильтра. См. http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html для возможных фильтров. Названия и значения фильтров чувствительны к регистру. По умолчанию экземпляры фильтруются по тегу «Имя», базовому AMI, состоянию (работающему по умолчанию) и ID подсети. Можно использовать любой запрашиваемый фильтр. Хорошими кандидатами являются конкретные теги, SSH-ключи или группы безопасности. |
| image | Образ для использования в экземпляре. Для получения образов можно использовать модуль ec2_ami_facts. Один из параметров image или image_id требуется, когда экземпляр еще не существует. Сложный объект, содержащий image.id, image.ramdisk и image.kernel.
image.id — ID AMI.
image.ramdisk переопределяет ID ramdisk по умолчанию AMI.
image.kernel — строка AKI для переопределения ядра AMI. | |
| image_id |
ID AMI для использования в экземпляре. Один из параметров image или image_id требуется, когда экземпляр еще не существует. Это псевдоним для image.id. | |
| instance_ids | Если вы укажете один или несколько идентификаторов экземпляров, будут возвращены только экземпляры с указанными идентификаторами. | |
| instance_initiated_shutdown_behavior |
| Останавливать или завершать экземпляр при выключении. |
| instance_role | ARN или имя роли экземпляра EC2, которую следует использовать. Если имя не предоставлено в формате ARN, разрешение ListInstanceProfiles также должно быть предоставлено. https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListInstanceProfiles.html Если не указан полный ARN, будет использоваться роль с соответствующим именем из активной учетной записи AWS. | |
| instance_type | Значение по умолчанию: t2.micro | Тип экземпляра для использования в экземпляре, см. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html Требуется только при отсутствии экземпляра. |
| key_name | Имя SSH-ключа доступа, который необходимо назначить экземпляру — ключ должен существовать в регионе создания экземпляра. | |
| launch_template | Шаблон запуска EC2 для настройки параметров экземпляра.
launch_template.id — ID или имя шаблона запуска (необязательно, если указано имя)
launch_template.name — красивое имя шаблона запуска (необязательно, если указан ID)
launch_template.version — конкретная версия шаблона запуска, которую следует использовать. Если не указано, выбирается шаблон по умолчанию. | |
| name | Тег «Имя» для экземпляра. | |
| network | Либо словарь, содержащий ключ «interfaces», соответствующий списку идентификаторов сетевых интерфейсов, либо описание для отдельного сетевого интерфейса. Если заданы параметры для одного сетевого интерфейса, допустимыми ключами являются assign_public_ip (bool), private_ip_address (str), ipv6_addresses (list), source_dest_check (bool), description (str), delete_on_termination (bool), device_index (int), groups (список ID групп безопасности), private_ip_addresses (список), subnet_id (str).
network.interfaces должен быть списком ID ENI (строки) или списком объектов, содержащих ключ id. Используйте ec2_eni для создания ENI со специальными настройками. | |
| profile (добавлено в 1.6) | Значение по умолчанию: None | Использует профиль boto. Работает только с boto >= 2.24.0. |
| purge_tags | Значение по умолчанию: no | Удалить теги, не указанные в задаче, которые есть на экземпляре. Это означает, что вам нужно указать все необходимые теги в каждой задаче, влияющей на экземпляр. |
| region | Регион AWS для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если она существует. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| security_group | ID или имя группы безопасности. Взаимоисключающее с security_groups. | |
| security_groups | Список ID или имен групп безопасности (строки). Взаимоисключающее с security_group. | |
| security_token (добавлено в 1.6) | Значение по умолчанию: None | Безопасный токен AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token |
| state |
| Целевое состояние экземпляров |
| tags | Хэш/словарь тегов для добавления к новому экземпляру или добавления/удаления из существующего. | |
| tenancy |
| Тип аренды, которую может использовать экземпляр. По умолчанию — общая аренда. Аренда Dedicated повлечет дополнительные расходы. |
| termination_protection | Включить защиту от удаления. Этот модуль не удалит экземпляр с активной защитой от удаления, её необходимо отключить. | |
| tower_callback | Настроенные пользовательские данные для выполнения обратного вызова Tower. Требуются параметры tower_callback.tower_address, tower_callback.job_template_id и tower_callback.host_config_key. Взаимоисключающее с user_data. Для Windows-экземпляров, для включения удалённого доступа через Ansible, установите tower_callback.windows в true и, по желанию, пароль администратора. Если использовать 'windows' и 'set_password', обратный вызов в Tower не будет выполнен, но экземпляр будет готов к приёму соединений winrm от Ansible. | |
| user_data | Неструктурированные данные, которые доступны для экземпляра ec2 | |
| validate_certs (добавлено в 1.5) |
| Если значение «no», сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
| volumes | Список отображений блочных устройств, по умолчанию всегда используется корневое устройство AMI, поэтому опция volumes в основном предназначена для добавления дополнительного хранилища. отображение содержит (необязательные) ключи device_name, virtual_name, ebs.device_type, ebs.device_size, ebs.kms_key_id, ebs.iops и ebs.delete_on_termination. Дополнительную информацию о каждом параметре см. на https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html
|
| vpc_subnet_id | Идентификатор подсети, в которой необходимо запустить экземпляр (VPC). Если не указано, ec2_instance выберет по умолчанию зону в VPC по умолчанию Псевдонимы: subnet_id | |
| wait | По умолчанию: yes | Ожидать ли достижения желаемого состояния (используйте wait_timeout для настройки этого) |
| wait_timeout | По умолчанию: 600 | Время ожидания (в секундах) завершения загрузки/завершения работы экземпляра |
Примечания
Примечание
- Если параметры не установлены в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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), если учетные данные не предоставлены. См. http://boto.readthedocs.org/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.
# Terminate every instance in a region. Use with caution.
- ec2_instance_facts:
state: absent
filters:
instance-state-name: running
# Gather facts about all instances in AZ ap-southeast-2a
- ec2_instance_facts:
filters:
availability-zone: ap-southeast-2a
# Gather facts about a particular instance using ID
- ec2_instance_facts:
instance_ids:
- i-12345678
# Gather facts about any instance with a tag key Name and value Example
- ec2_instance_facts:
filters:
"tag:Name": Example
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||||
|---|---|---|---|---|---|---|
| экземпляры сложный | всегда | список экземпляров ec2 | ||||
| сетевые_интерфейсы сложный | всегда | Один или несколько сетевых интерфейсов для экземпляра. | ||||
| состояние строка | всегда | Состояние сетевого интерфейса. Пример: в_использовании | ||||
| описание строка | всегда | Описание. Пример: Мой интерфейс | ||||
| id_подсети строка | всегда | Идентификатор подсети для сетевого интерфейса. Пример: subnet-0123456 | ||||
| ipv6_адреса сложный | всегда | Один или несколько адресов IPv6, связанных с сетевым интерфейсом. | ||||
| ipv6_адрес строка | всегда | Адрес IPv6. Пример: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | ||||
| id_сетевого_интерфейса строка | всегда | Идентификатор сетевого интерфейса. Пример: eni-01234567 | ||||
| подключение сложный | всегда | Подключение сетевого интерфейса. | ||||
| состояние строка | всегда | Состояние подключения. Пример: подключено | ||||
| индекс_устройства целое | всегда | Индекс устройства на экземпляре для подключения сетевого интерфейса. | ||||
| id_подключения строка | всегда | Идентификатор подключения сетевого интерфейса. Пример: eni-attach-3aff3f | ||||
| удалить_при_окончании логическое | всегда | Указывает, удаляется ли сетевой интерфейс при завершении работы экземпляра. Пример: Истина | ||||
| время_подключения строка | всегда | Отметка времени начала подключения. Пример: 2017-03-23T22:51:24+00:00 | ||||
| private_ip_адреса сложный | всегда | Частные адреса IPv4, связанные с сетевым интерфейсом. | ||||
| private_ip_адрес строка | всегда | Частный адрес IPv4 сетевого интерфейса. Пример: 10.0.0.1 | ||||
| первичный логическое | всегда | Указывает, является ли этот адрес IPv4 основным частным IP-адресом сетевого интерфейса. Пример: Истина | ||||
| ассоциация сложный | всегда | Информация об ассоциации для адреса Elastic IP (IPv4), связанного с сетевым интерфейсом. | ||||
| публичное_имя_dns строка | всегда | Публичное имя DNS. | ||||
| публичный_ip строка | всегда | Публичный IP-адрес или адрес Elastic IP, привязанный к сетевому интерфейсу. Пример: 1.2.3.4 | ||||
| id_владельца_ip строка | всегда | Идентификатор владельца адреса Elastic IP. Пример: amazon | ||||
| mac_адрес строка | всегда | MAC-адрес. Пример: 00:11:22:33:44:55 | ||||
| private_ip_address строка | всегда | IPv4-адрес сетевого интерфейса в подсети. Пример: 10.0.0.1 | ||||
| id_vpc строка | всегда | Идентификатор VPC для сетевого интерфейса. Пример: vpc-0123456 | ||||
| группы сложный | всегда | Одна или несколько групп безопасности. | ||||
| id_группы строка | всегда | Идентификатор группы безопасности. Пример: sg-abcdef12 | ||||
| имя_группы строка | всегда | Имя группы безопасности. Пример: mygroup | ||||
| ассоциация сложный | всегда | Информация об ассоциации для Elastic IPv4, связанного с сетевым интерфейсом. | ||||
| публичное_имя_dns строка | всегда | Публичное имя DNS. | ||||
| public_ip string | always | Публичный IP-адрес или Elastic IP-адрес, привязанный к сетевому интерфейсу. Пример: 1.2.3.4 | ||||
| ip_owner_id string | always | Идентификатор владельца Elastic IP-адреса. Пример: amazon | ||||
| source_dest_check bool | always | Указывает, включена ли проверка источника/назначения. Пример: True | ||||
| owner_id string | always | AWS-идентификатор учетной записи владельца сетевого интерфейса. Пример: 01234567890 | ||||
| root_device_type string | always | Тип корневого устройства, используемого AMI. Пример: ebs | ||||
| private_dns_name string | always | Приватное имя DNS. Пример: ip-10-0-0-1.ap-southeast-2.compute.internal | ||||
| tags dict | always | Любые метки, назначенные экземпляру. | ||||
| key_name string | always | Имя пары ключей, если этот экземпляр был запущен с связанной парой ключей. Пример: my-key | ||||
| network.source_dest_check bool | always | Указывает, включена ли проверка источника/назначения. Пример: True | ||||
| image_id string | always | Идентификатор AMI, используемого для запуска экземпляра. Пример: ami-0011223344 | ||||
| block_device_mappings complex | always | Любые записи отображения блочных устройств для экземпляра. | ||||
| device_name string | always | Имя устройства, доступное для экземпляра (например, /dev/sdh или xvdh). Пример: /dev/sdh | ||||
| ebs complex | always | Параметры, используемые для автоматической настройки томов EBS при запуске экземпляра. | ||||
| status string | always | Состояние подключения. Пример: attached | ||||
| delete_on_termination bool | always | Указывает, будет ли том удален при завершении работы экземпляра. Пример: True | ||||
| attach_time string | always | Отметка времени начала подключения. Пример: 2017-03-23T22:51:24+00:00 | ||||
| volume_id string | always | Идентификатор тома EBS. Пример: vol-12345678 | ||||
| public_dns_name string | always | Публичное имя DNS, назначенное экземпляру. | ||||
| placement complex | always | Местоположение запуска экземпляра, если применимо. | ||||
| availability_zone string | always | Доступная зона экземпляра. Пример: ap-southeast-2a | ||||
| tenancy string | always | Тип аренды экземпляра (если экземпляр работает в VPC). Пример: default | ||||
| group_name string | always | Имя группы размещения, в которой находится экземпляр (для кластерных вычислительных экземпляров). | ||||
| security_groups complex | always | Один или несколько групп безопасности для экземпляра. | ||||
| group_id string | always | Идентификатор группы безопасности. Пример: sg-0123456 | ||||
| public_ip_address string | always | Публичный IPv4-адрес, назначенный экземпляру. Пример: 52.0.0.1 | ||||
| product_codes complex | always | Один или несколько кодов продукта. | ||||
| product_code_type string | always | Тип кода продукта. Пример: marketplace | ||||
| product_code_id string | always | Код продукта. Пример: aw0evgkw8ef3n2498gndfgasdfsd5cce | ||||
| monitoring complex | always | Мониторинг экземпляра. | ||||
| state string | always | Указывает, включен ли подробный мониторинг. В противном случае включен базовый мониторинг. Пример: disabled | ||||
| ami_launch_index int | always | Индекс запуска AMI, который можно использовать для поиска этого экземпляра в группе запуска. | ||||
| subnet_id string | always | Идентификатор подсети, в которой запущен экземпляр. Пример: subnet-00abcdef | ||||
| hypervisor string | always | Тип гипервизора экземпляра. Пример: xen | ||||
| ebs_optimized bool | always | Указывает, оптимизирован ли экземпляр для ввода-вывода EBS. | ||||
| launch_time string | always | Время запуска экземпляра. Пример: 2017-03-23T22:51:24+00:00 | ||||
| iam_instance_profile complex | always | Профиль экземпляра IAM, применимый к экземпляру. | ||||
| id string | always | Идентификатор профиля экземпляра Пример: JFJ397FDG400FG9FD1N | ||||
| arn string | always | Amazon Resource Name (ARN) профиля экземпляра. Пример: arn:aws:iam::000012345678:instance-profile/myprofile | ||||
| instance_id string | always | Идентификатор экземпляра. Пример: i-012345678 | ||||
| instance_type string | always | Размер типа экземпляра запущенного экземпляра. Пример: t2.micro | ||||
| state complex | always | Текущее состояние экземпляра. | ||||
| code int | always | Низкий байт представляет состояние. Пример: 16 | ||||
| name string | always | Название состояния. Пример: running | ||||
| root_device_name string | always | Имя устройства корневого устройства Пример: /dev/sda1 | ||||
| state_transition_reason string | always | Причина последнего изменения состояния. | ||||
| private_ip_address string | always | IPv4-адрес сетевого интерфейса в подсети. Пример: 10.0.0.1 | ||||
| vpc_id dict | always | Идентификатор VPC, в котором находится экземпляр. Пример: vpc-0011223344 | ||||
| client_token string | always | Маркер идемпотентности, предоставленный вами при запуске экземпляра (применимо). Пример: mytoken | ||||
| virtualization_type string | always | Тип виртуализации AMI. Пример: hvm | ||||
| architecture string | always | Архитектура образа Пример: x86_64 | ||||
Статус
Этот модуль помечен как предварительный просмотр, что означает, что он не гарантирует обратную совместимость интерфейса.
Автор
- Ryan Scott Brown, @ryansb
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.5/modules/ec2_instance_module.html