Spec-Zone.ru › Ansible 2.8

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
Уменьшить количество vCPU, доступных экземпляру.
Эти параметры можно задать только при запуске экземпляра. Два подпараметра 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.
debug_botocore_endpoint_logs
логический тип
добавлено в 2.8
    Варианты:
  • нет ←
  • да
Использовать логи ротор botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время задачи, выводить набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода в общий список, созданный во время выполнения книги сценариев. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS.
detailed_monitoring
логический тип
    Варианты:
  • нет
  • да
Разрешить сбор подробных метрик cloudwatch, что позволит собирать более подробные оповещения.
ebs_optimized
логический тип
    Варианты:
  • нет
  • да
Использовать оптимизированные тома EBS для экземпляра, см. https://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предоставленное-значение-атрибута-Name\u003e"}
Словарь фильтров, применяемых при определении, подходят ли существующие экземпляры и должны ли они быть изменены. Каждый элемент словаря состоит из ключа фильтра и значения фильтра. См. https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html для возможных фильтров. Имена и значения фильтров чувствительны к регистру. По умолчанию, экземпляры отфильтровываются для подсчета по тегу "Name", базовой AMI, состоянию (running по умолчанию) и ID подсети. Можно использовать любые запросы фильтров. Хорошими кандидатами являются определенные теги, ключи SSH или группы безопасности.
image
-
Изображение для использования в экземпляре. Модуль ec2_ami_facts может использоваться для извлечения изображений. Один из параметров image или image_id требуется, когда экземпляр еще не существует.
Сложный объект, содержащий image.id, image.ramdisk и image.kernel.
image.id — ID AMI.
image.ramdisk переопределяет ID дисков RAM по умолчанию AMI.
image.kernel — строка AKI для переопределения ядра AMI.
image_id
-
ID ami для использования в экземпляре. Один из параметров image или image_id требуется, когда экземпляр еще не существует.
Это псевдоним для image.id.
instance_ids
-
Если вы укажете один или несколько ID экземпляров, будут возвращены только экземпляры, у которых указаны эти ID.
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"
Тип экземпляра для использования в экземпляре, см. https://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', соответствующий списку ID сетевых интерфейсов, либо содержащий спецификации для одного сетевого интерфейса.
Если заданы спецификации для одного сетевого интерфейса, допустимые ключи: assign_public_ip (логический тип), private_ip_address (строка), ipv6_addresses (список), source_dest_check (логический тип), description (строка), delete_on_termination (логический тип), device_index (целое число), groups (список ID групп безопасности), private_ip_addresses (список), subnet_id (строка).
network.interfaces должен быть списком ID ENI (строки) или списком объектов, содержащих ключ id.
Используйте ec2_eni для создания ENI со специальными настройками.
placement_group
-
добавлено в 2.8
Группа размещения, которая должна быть назначена экземпляру.
profile
строка
Использует профиль boto. Работает только с boto >= 2.24.0.
purge_tags
логический тип
    Варианты:
  • нет ←
  • да
Удалить любые теги, не указанные в задаче, которые есть на экземпляре. Это означает, что вы должны указать все желаемые теги в каждой задаче, влияющей на экземпляр.
регион
строка
AWS регион для использования. Если не указано, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

псевдонимы: aws_region, ec2_region
группа_безопасности
-
Идентификатор или имя группы безопасности. Взаимоисключающее с security_groups.
группы_безопасности
-
Список идентификаторов или имён групп безопасности (строки). Взаимоисключающее с security_group.
токен_безопасности
строка
Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN.

псевдонимы: access_token
состояние
-
    Варианты:
  • present ←
  • terminated
  • running
  • started
  • stopped
  • restarted
  • rebooted
  • absent
Целевое состояние экземпляров.
метки
-
Хэш/словарь меток для добавления к новому экземпляру или для добавления/удаления из существующего.
tenancy
-
    Варианты:
  • dedicated
  • default
Тип аренды, который должен использовать экземпляр. По умолчанию используется общая аренда. Аренда выделенных ресурсов повлечёт дополнительные расходы.
защита_от_удаления
булево
    Варианты:
  • no
  • yes
Включить защиту от удаления. Данный модуль не удалит экземпляр с активной защитой от удаления, её необходимо сначала отключить.
tower_callback
-
Преднастроенные данные пользователя для выполнения обратного вызова Tower (только для Linux).
Взаимоисключающее с user_data.
Для экземпляров Windows, чтобы включить удаленный доступ через Ansible, установите tower_callback.windows в значение true, и необязательно задайте пароль администратора.
Если используется 'windows' и 'set_password', обратный вызов в Tower не будет выполнен, но экземпляр будет готов для приема подключений winrm от Ansible.
host_config_key
-
Секретный ключ конфигурации хоста, сгенерированный шаблоном задачи Tower.
job_template_id
-
Целочисленный ID шаблона задачи Tower или имя (имя поддерживается только для Tower 3.2+).
tower_address
-
IP-адрес или доменное имя сервера Tower. Должен быть доступен по этому адресу из VPC, в котором будет запущен данный экземпляр.
user_data
-
Неструктурированные данные, доступные экземпляру ec2
validate_certs
булево
    Варианты:
  • no
  • yes ←
Если установлено в "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0.
volumes
-
Список отображений блочных устройств, по умолчанию всегда используется корневое устройство 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.
vpc_subnet_id
-
ID подсети VPC, в которой должен быть запущен экземпляр. Если не указано, ec2_instance выберет стандартную зону стандартной VPC.

псевдонимы: subnet_id
wait
булево
    Варианты:
  • no
  • 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), если учетные данные не предоставлены. См. 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 Add EBS
- ec2_instance:
    name: "public-withebs-instance"
    vpc_subnet_id: subnet-5ca1ab1e
    instance_type: t2.micro
    key_name: "prod-ssh-key"
    security_group: default
    volumes:
      - device_name: /dev/sda1
        ebs:
          volume_size: 16
          delete_on_termination: true

# start an instance with a cpu_options
- ec2_instance:
    name: "public-cpuoption-instance"
    vpc_subnet_id: subnet-5ca1ab1e
    tags:
      Environment: Testing
    instance_type: c4.large
    volumes:
    - device_name: /dev/sda1
      ebs:
        delete_on_termination: true
    cpu_options:
        core_count: 1
        threads_per_core: 1

# 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"

# start an instance with ENI (An existing ENI ID is required)
- ec2_instance:
    name: "public-eni-instance"
    key_name: "prod-ssh-key"
    vpc_subnet_id: subnet-5ca1ab1e
    network:
      interfaces:
        - id: "eni-12345"
    tags:
      Env: "eni_on"
    volumes:
    - device_name: /dev/sda1
      ebs:
        delete_on_termination: true
    instance_type: t2.micro
    image_id: ami-123456

# add second ENI interface
- ec2_instance:
    name: "public-eni-instance"
    network:
      interfaces:
        - id: "eni-12345"
        - id: "eni-67890"
    image_id: ami-123456
    tags:
      Env: "eni_on"
    instance_type: t2.micro

Значения возврата

Общие значения возврата описаны в этом разделе, следующие поля уникальны для данного модуля:

Ключ Возвращаемое значение Описание
экземпляры
сложный
когда wait == true
список экземпляров ec2

ami_launch_index
целое число
всегда
Индекс запуска AMI, который можно использовать для поиска этого экземпляра в группе запуска.

архитектура
строка
всегда
Архитектура образа

Пример:
x86_64
block_device_mappings
сложный
всегда
Любые записи сопоставления блочных устройств для экземпляра.

имя_устройства
строка
всегда
Имя устройства, доступного для экземпляра (например, /dev/sdh или xvdh).

Пример:
/dev/sdh
ebs
сложный
всегда
Параметры, используемые для автоматической настройки томов EBS при запуске экземпляра.

время_присоединения
строка
всегда
Отметка времени, когда началось присоединение.

Пример:
2017-03-23T22:51:24+00:00
удалять_при_завершении
логическое
всегда
Указывает, будет ли том удален при завершении экземпляра.

Пример:
True
состояние
строка
всегда
Состояние присоединения.

Пример:
присоединён
id_тома
строка
всегда
ID тома EBS

Пример:
vol-12345678
client_token
строка
всегда
Маркер идемпотентности, предоставленный вами при запуске экземпляра, если применимо.

Пример:
mytoken
ebs_optimized
логическое
всегда
Указывает, оптимизирован ли экземпляр для ввода-вывода EBS.

гипервизор
строка
всегда
Тип гипервизора экземпляра.

Пример:
xen
iam_instance_profile
сложный
всегда
Профиль IAM экземпляра, связанный с экземпляром, если применимо.

arn
строка
всегда
Amazon Resource Name (ARN) профиля экземпляра.

Пример:
arn:aws:iam::000012345678:instance-profile/myprofile
id
строка
всегда
ID профиля экземпляра

Пример:
JFJ397FDG400FG9FD1N
image_id
строка
всегда
ID AMI, используемого для запуска экземпляра.

Пример:
ami-0011223344
instance_id
строка
всегда
ID экземпляра.

Пример:
i-012345678
instance_type
строка
всегда
Размер типа экземпляра работающего экземпляра.

Пример:
t2.micro
key_name
строка
всегда
Имя пары ключей, если этот экземпляр был запущен с связанной парой ключей.

Пример:
my-key
launch_time
строка
всегда
Время запуска экземпляра.

Пример:
2017-03-23T22:51:24+00:00
monitoring
сложный
всегда
Мониторинг для экземпляра.

состояние
строка
всегда
Указывает, включен ли подробный мониторинг. В противном случае включен базовый мониторинг.

Пример:
выключен
network.source_dest_check
логическое
всегда
Указывает, включена ли проверка источника/назначения.

Пример:
True
network_interfaces
сложный
всегда
Один или несколько сетевых интерфейсов для экземпляра.

association
сложный
всегда
Информация об ассоциации с Elastic IPv4, связанной с сетевым интерфейсом.

ip_owner_id
строка
всегда
ID владельца адреса Elastic IP.

Пример:
amazon
public_dns_name
строка
всегда
Публичное имя DNS.

public_ip
строка
всегда
Публичный IP-адрес или адрес Elastic IP, привязанный к сетевому интерфейсу.

Пример:
1.2.3.4
attachment
сложный
всегда
Присоединение сетевого интерфейса.

время_присоединения
строка
всегда
Отметка времени, когда началось присоединение.

Пример:
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
строка
всегда
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
строка
всегда
ID группы безопасности.

Пример:
sg-0123456
group_name
строка
всегда
Имя группы безопасности.

Пример:
my-security-group
state
комплексный
всегда
Текущее состояние экземпляра.

code
целое число
всегда
Нижние байты представляют состояние.

Пример:
16
name
строка
всегда
Имя состояния.

Пример:
running
state_transition_reason
строка
всегда
Причина последнего перехода состояния.

subnet_id
строка
всегда
ID подсети, в которой работает экземпляр.

Пример:
subnet-00abcdef
tags
словарь
всегда
Присвоенные теги экземпляру.

virtualization_type
строка
всегда
Тип виртуализации AMI.

Пример:
hvm
vpc_id
словарь
всегда
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.8/modules/ec2_instance_module.html

Spec-Zone.ru

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