Spec-Zone.ru › Ansible 2.7

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
-
    Варианты:
  • unlimited
  • standard
Для экземпляров серии 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
- / обязательно
    Варианты:
  • 1
  • 2
Выберите количество потоков на ядро для включения. Отключить или включить 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
-
    Варианты:
  • stop
  • terminate
Определяет, останавливать или уничтожать экземпляр при выключении.
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

Spec-Zone.ru

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