ec2_instance – Создание и управление экземплярами EC2
Новая версия с 2.5.
Описание
- Создание и управление экземплярами AWS EC2
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| availability_zone - | Укажите зону доступности для использования подсети по умолчанию. Полезно, если не указан параметр vpc_subnet_id. Если не указана подсеть, ENI или зона доступности, по умолчанию будет использоваться подсеть в VPC по умолчанию в первой зоне доступности (в алфавитном порядке). | ||
| aws_access_key - | Ключ доступа AWS. Если не задан, используется значение переменной среды AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. псевдонимы: ec2_access_key, access_key | ||
| aws_secret_key - | Секретный ключ AWS. Если не задан, используется значение переменной среды AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. псевдонимы: ec2_secret_key, secret_key | ||
| cpu_credit_specification - |
| Для экземпляров серии T2 выберите, разрешить ли увеличение оплаты за кредиты ЦП, если резерв по умолчанию исчерпан. Выберите unlimited, чтобы включить покупку дополнительных кредитов ЦП. | |
| cpu_options - добавлено в 2.7 | Уменьшите количество виртуальных ядер, доступных экземпляру. Эти параметры можно задать только при запуске экземпляра. Два подпараметра threads_per_core и core_count обязательны. См. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html для доступных комбинаций. Требуется botocore >= 1.10.16 | ||
| core_count - / обязательно | Установите количество ядер для включения. | ||
| threads_per_core - / обязательно |
| Выберите количество потоков на ядро для включения. Отключить или включить Intel HT | |
| detailed_monitoring - | Разрешить сбор подробных метрик cloudwatch, что позволит создать более детальные оповещения. | ||
| ebs_optimized - | Использовать оптимизированные тома EBS, см. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
| ||
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где необходим регион. Должен быть указан для всех остальных модулей, если не используется регион. Если не указан, используется значение переменной среды EC2_URL, если таковая имеется. | ||
| filters - | По умолчанию: {"subnet-id": "\u003cпредоставленная-или-по-умолчанию подсеть\u003e", "tag:Name": "\u003cпредоставленное-значение-атрибута\u003e"} | Словарь фильтров, применяемых при определении, соответствуют ли существующие экземпляры и необходимо ли их изменить. Каждый элемент словаря состоит из ключа фильтра и значения фильтра. См. 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 виртуального диска 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 | Использует профиль 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 | Токен безопасности AWS STS. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. псевдонимы: access_token | ||
| состояние - |
| Целевое состояние экземпляров | |
| теги - | Хэш/словарь тегов для добавления к новому экземпляру или добавления/удаления из существующего. | ||
| аренда - |
| Тип аренды, которую можно использовать для экземпляра. По умолчанию используется общая аренда. Посвящённая аренда повлечёт дополнительные расходы. | |
| защита от завершения - | Включить или выключить защиту от завершения. Этот модуль не завершит экземпляр с активной защитой от завершения, её необходимо сначала выключить. | ||
| обратный вызов Tower - | Преднастроенные пользовательские данные для выполнения обратного вызова Tower экземпляром (только Linux). Взаимоисключающее с пользовательскими данными. Для экземпляров Windows, чтобы включить удалённый доступ через Ansible, установите tower_callback.windows в значение true и, при необходимости, задайте пароль администратора. Если используется 'windows' и 'set_password', обратный вызов Tower не будет выполнен, но экземпляр будет готов к приёму подключений winrm от Ansible. | ||
| ключ конфигурации хоста - | Секретный ключ конфигурации хоста, сгенерированный шаблоном задания Tower. | ||
| ID шаблона задания - | Целое число ID шаблона задания Tower или имя (имя поддерживается только для Tower 3.2+) | ||
| адрес Tower - | IP-адрес или имя DNS сервера Tower. Должен быть доступен по этому адресу из VPC, в котором будет запущен экземпляр. | ||
| пользовательские данные - | Неструктурированные данные, предоставляемые экземпляру ec2. | ||
| проверять сертификаты boolean добавлено в 1.5 |
| При значении "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0. | |
| тома - | Список отображений блочных устройств. По умолчанию всегда используется корневое устройство AMI, поэтому параметр volumes в основном используется для добавления дополнительных хранилищ. Отображение содержит (необязательные) ключи device_name, virtual_name, ebs.volume_type, ebs.volume_size, ebs.kms_key_id, ebs.iops и ebs.delete_on_termination. Дополнительную информацию о каждом параметре см. на странице https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html
| ||
| ID подсети VPC - | ID подсети, в которой нужно запустить экземпляр (VPC). Если не указан, ec2_instance выберет зону по умолчанию из VPC по умолчанию псевдонимы: subnet_id | ||
| ждать - | По умолчанию: "да" | Дожидаться достижения желаемого состояния (используйте 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), если не предоставлены учетные данные. См. 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.
# Terminate every running instance in a region. Use with EXTREME caution.
- ec2_instance:
state: absent
filters:
instance-state-name: running
# restart a particular instance by its ID
- ec2_instance:
state: restarted
instance_ids:
- i-12345678
# start an instance with a public IP address
- ec2_instance:
name: "public-compute-instance"
key_name: "prod-ssh-key"
vpc_subnet_id: subnet-5ca1ab1e
instance_type: c5.large
security_group: default
network:
assign_public_ip: true
image_id: ami-123456
tags:
Environment: Testing
# start an instance and have it begin a Tower callback on boot
- ec2_instance:
name: "tower-callback-test"
key_name: "prod-ssh-key"
vpc_subnet_id: subnet-5ca1ab1e
security_group: default
tower_callback:
# IP or hostname of tower server
tower_address: 1.2.3.4
job_template_id: 876
host_config_key: '[secret config key goes here]'
network:
assign_public_ip: true
image_id: ami-123456
cpu_credit_specification: unlimited
tags:
SomeThing: "A value"
Значения возврата
Общие значения возврата описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | ||||
|---|---|---|---|---|---|---|
| instances сложный | всегда | список экземпляров ec2 | ||||
| ami_launch_index целое число | всегда | Индекс запуска AMI, который можно использовать для поиска этого экземпляра в группе запусков. | ||||
| architecture строка | всегда | Архитектура образа Пример: x86_64 | ||||
| block_device_mappings сложный | всегда | Любые записи сопоставления блочных устройств для экземпляра. | ||||
| device_name строка | всегда | Имя устройства, доступное экземпляру (например, /dev/sdh или xvdh). Пример: /dev/sdh | ||||
| ebs сложный | всегда | Параметры, используемые для автоматической настройки томов EBS при запуске экземпляра. | ||||
| attach_time строка | всегда | Отметка времени, когда началось подключение. Пример: 2017-03-23T22:51:24+00:00 | ||||
| delete_on_termination логическое значение | всегда | Указывает, будет ли том удален при завершении работы экземпляра. Пример: True | ||||
| status строка | всегда | Состояние подключения. Пример: attached | ||||
| volume_id строка | всегда | Идентификатор тома EBS Пример: vol-12345678 | ||||
| client_token строка | всегда | Токен идемпотентности, предоставленный вами при запуске экземпляра, если применимо. Пример: mytoken | ||||
| ebs_optimized логическое значение | всегда | Указывает, оптимизирован ли экземпляр для ввода-вывода EBS. | ||||
| hypervisor строка | всегда | Тип гипервизора экземпляра. Пример: xen | ||||
| iam_instance_profile сложный | всегда | Профиль экземпляра IAM, связанный с экземпляром, если применимо. | ||||
| arn строка | всегда | Amazon Resource Name (ARN) профиля экземпляра. Пример: arn:aws:iam::000012345678:instance-profile/myprofile | ||||
| id строка | всегда | Идентификатор профиля экземпляра Пример: JFJ397FDG400FG9FD1N | ||||
| image_id строка | всегда | Идентификатор AMI, используемого для запуска экземпляра. Пример: ami-0011223344 | ||||
| instance_id строка | всегда | Идентификатор экземпляра. Пример: i-012345678 | ||||
| instance_type строка | всегда | Размер типа экземпляра запущенного экземпляра. Пример: t2.micro | ||||
| key_name строка | всегда | Имя пары ключей, если этот экземпляр был запущен с связанной парой ключей. Пример: my-key | ||||
| launch_time строка | всегда | Время запуска экземпляра. Пример: 2017-03-23T22:51:24+00:00 | ||||
| monitoring сложный | всегда | Мониторинг экземпляра. | ||||
| state строка | всегда | Указывает, включен ли подробный мониторинг. В противном случае включен базовый мониторинг. Пример: disabled | ||||
| network.source_dest_check логическое значение | всегда | Указывает, включена ли проверка источника/назначения. Пример: True | ||||
| network_interfaces сложный | всегда | Один или несколько сетевых интерфейсов для экземпляра. | ||||
| association сложный | всегда | Информация об ассоциации с Elastic IPv4, связанным с сетевым интерфейсом. | ||||
| ip_owner_id строка | всегда | Идентификатор владельца адреса Elastic IP. Пример: amazon | ||||
| public_dns_name строка | всегда | Публичное имя DNS. | ||||
| public_ip строка | всегда | Публичный IP-адрес или адрес Elastic IP, привязанный к сетевому интерфейсу. Пример: 1.2.3.4 | ||||
| attachment сложный | всегда | Подключение сетевого интерфейса. | ||||
| attach_time строка | всегда | Отметка времени, когда началось подключение. Пример: 2017-03-23T22:51:24+00:00 | ||||
| attachment_id строка | всегда | Идентификатор подключения к сетевому интерфейсу. Пример: eni-attach-3aff3f | ||||
| delete_on_termination булево | всегда | Указывает, удаляется ли сетевой интерфейс при завершении работы экземпляра. Пример: True | ||||
| device_index целое число | всегда | Индекс устройства на экземпляре для подключения сетевого интерфейса. | ||||
| status строка | всегда | Состояние подключения. Пример: attached | ||||
| description строка | всегда | Описание. Пример: Мой интерфейс | ||||
| groups сложный тип | всегда | Один или несколько групп безопасности. | ||||
| group_id строка | всегда | Идентификатор группы безопасности. Пример: sg-abcdef12 | ||||
| group_name строка | всегда | Имя группы безопасности. Пример: mygroup | ||||
| ipv6_addresses сложный тип | всегда | Один или несколько IPv6-адресов, связанных с сетевым интерфейсом. | ||||
| ipv6_address строка | всегда | IPv6-адрес. Пример: 2001:0db8:85a3:0000:0000:8a2e:0370:7334 | ||||
| mac_address строка | всегда | MAC-адрес. Пример: 00:11:22:33:44:55 | ||||
| network_interface_id строка | всегда | Идентификатор сетевого интерфейса. Пример: eni-01234567 | ||||
| owner_id строка | всегда | AWS идентификатор владельца сетевого интерфейса. Пример: 01234567890 | ||||
| private_ip_address строка | всегда | IPv4-адрес сетевого интерфейса в подсети. Пример: 10.0.0.1 | ||||
| private_ip_addresses сложный тип | всегда | Приватные IPv4-адреса, связанные с сетевым интерфейсом. | ||||
| association сложный тип | всегда | Информация об ассоциации для адреса Elastic IP (IPv4), связанного с сетевым интерфейсом. | ||||
| ip_owner_id строка | всегда | Идентификатор владельца адреса Elastic IP. Пример: amazon | ||||
| public_dns_name строка | всегда | Публичное имя DNS. | ||||
| public_ip строка | всегда | Публичный IP-адрес или Elastic IP-адрес, привязанный к сетевому интерфейсу. Пример: 1.2.3.4 | ||||
| primary булево | всегда | Указывает, является ли этот IPv4-адрес основным приватным IP-адресом сетевого интерфейса. Пример: True | ||||
| private_ip_address строка | всегда | Приватный IPv4-адрес сетевого интерфейса. Пример: 10.0.0.1 | ||||
| source_dest_check булево | всегда | Указывает, включена ли проверка источника/назначения. Пример: True | ||||
| status строка | всегда | Состояние сетевого интерфейса. Пример: в использовании | ||||
| subnet_id строка | всегда | Идентификатор подсети для сетевого интерфейса. Пример: subnet-0123456 | ||||
| vpc_id строка | всегда | Идентификатор VPC для сетевого интерфейса. Пример: vpc-0123456 | ||||
| placement сложный тип | всегда | Местоположение запуска экземпляра, если применимо. | ||||
| availability_zone строка | всегда | Зона доступности экземпляра. Пример: ap-southeast-2a | ||||
| group_name строка | всегда | Имя группы размещения, в которой находится экземпляр (для кластерных вычислительных экземпляров). | ||||
| tenancy строка | всегда | Тип аренды экземпляра (если экземпляр работает в VPC). Пример: default | ||||
| private_dns_name строка | всегда | Название частного DNS. Пример: ip-10-0-0-1.ap-southeast-2.compute.internal | ||||
| private_ip_address строка | всегда | IP-адрес IPv4 сетевого интерфейса в подсети. Пример: 10.0.0.1 | ||||
| product_codes сложное | всегда | Один или несколько кодов продукта. | ||||
| product_code_id строка | всегда | Код продукта. Пример: aw0evgkw8ef3n2498gndfgasdfsd5cce | ||||
| product_code_type строка | всегда | Тип кода продукта. Пример: marketplace | ||||
| public_dns_name строка | всегда | Публичное DNS-имя, назначенное экземпляру. | ||||
| public_ip_address строка | всегда | Публичный IPv4-адрес, назначенный экземпляру. Пример: 52.0.0.1 | ||||
| root_device_name строка | всегда | Имя устройства корневого устройства. Пример: /dev/sda1 | ||||
| root_device_type строка | всегда | Тип корневого устройства, используемого AMI. Пример: ebs | ||||
| security_groups сложное | всегда | Один или несколько групп безопасности для экземпляра. | ||||
| group_id строка | всегда | Идентификатор группы безопасности. Пример: sg-0123456 | ||||
| state сложное | всегда | Текущее состояние экземпляра. | ||||
| code целое число | всегда | Низкий байт представляет состояние. Пример: 16 | ||||
| name строка | всегда | Имя состояния. Пример: запущен | ||||
| state_transition_reason строка | всегда | Причина последнего перехода состояния. | ||||
| subnet_id строка | всегда | Идентификатор подсети, в которой работает экземпляр. Пример: subnet-00abcdef | ||||
| tags словарь | всегда | Все теги, назначенные экземпляру. | ||||
| virtualization_type строка | всегда | Тип виртуализации AMI. Пример: hvm | ||||
| vpc_id словарь | всегда | Идентификатор VPC, в котором находится экземпляр. Пример: vpc-0011223344 | ||||
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.7/modules/ec2_instance_module.html