Spec-Zone.ru › Ansible 2.9

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.
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, состоянию (работающему по умолчанию) и ID подсети. Можно использовать любой запрошиваемый фильтр. Хорошими кандидатами являются конкретные теги, ключи SSH или группы безопасности.
image
-
Изображение для использования для экземпляра. Модуль ec2_ami_info может использоваться для получения изображений. Один из 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"
Тип экземпляра для использования для экземпляра, см. 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
-
Тег "Name" для экземпляра.
network
-
Либо словарь, содержащий ключ 'interfaces', соответствующий списку идентификаторов сетевых интерфейсов, либо содержащий параметры для одного сетевого интерфейса.
Если заданы параметры для одного сетевого интерфейса, допустимые ключи — assign_public_ip (булево), private_ip_address (строка), ipv6_addresses (список), source_dest_check (булево), description (строка), delete_on_termination (булево), device_index (целое число), groups (список идентификаторов групп безопасности), 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
булево
    Варианты:
  • нет ←
  • да
Удалить теги, не указанные в задаче, которые есть на экземпляре. Это означает, что вы должны указывать все желаемые теги в каждой задаче, влияющей на экземпляр.
END_OF_DOCUMENT_MARKER
регион
строка
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

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

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

Ключ Возвращаемое значение Описание
instances
complex
при wait == true
список ec2 инстансов

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

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

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

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

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

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

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

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

Пример:
attached
volume_id
string
всегда
Идентификатор тома EBS

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

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

hypervisor
string
всегда
Тип гипервизора инстанса.

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

arn
string
всегда
Amazon Resource Name (ARN) профиля инстанса.

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

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

Пример:
ami-0011223344
instance_id
string
всегда
Идентификатор инстанса.

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

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

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

Пример:
2017-03-23T22:51:24+00:00
monitoring
complex
всегда
Мониторинг инстанса.

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

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

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

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

ip_owner_id
string
всегда
Идентификатор владельца адреса Elastic IP.

Пример:
amazon
public_dns_name
string
всегда
Общедоступное имя DNS.

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

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

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

Пример:
2017-03-23T22:51:24+00:00
идентификатор_соединения
строка
всегда
Идентификатор соединения сетевого интерфейса.

Пример:
eni-attach-3aff3f
удалять_при_завершении
булево
всегда
Указывает, будет ли удален сетевой интерфейс при завершении экземпляра.

Пример:
True
индекс_устройства
целое
всегда
Индекс устройства в экземпляре для соединения сетевого интерфейса.

статус
строка
всегда
Состояние соединения.

Пример:
подключено
описание
строка
всегда
Описание.

Пример:
Мой интерфейс
группы
список сложных
всегда
Одна или несколько групп безопасности.

идентификатор_группы
строка
всегда
Идентификатор группы безопасности.

Пример:
sg-abcdef12
название_группы
строка
всегда
Название группы безопасности.

Пример:
mygroup
ipv6_адреса
сложный
всегда
Один или несколько адресов IPv6, связанных с сетевым интерфейсом.

ipv6_адрес
строка
всегда
Адрес IPv6.

Пример:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
mac_адрес
строка
всегда
MAC-адрес.

Пример:
00:11:22:33:44:55
идентификатор_сетевого_интерфейса
строка
всегда
Идентификатор сетевого интерфейса.

Пример:
eni-01234567
идентификатор_владельца
строка
всегда
Идентификатор AWS учетной записи владельца сетевого интерфейса.

Пример:
01234567890
приватный_ip_адрес
строка
всегда
IPv4-адрес сетевого интерфейса в подсети.

Пример:
10.0.0.1
приватные_ip_адреса
список сложных
всегда
Приватные IPv4-адреса, связанные с сетевым интерфейсом.

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

идентификатор_владельца_ip
строка
всегда
Идентификатор владельца адреса Elastic IP.

Пример:
amazon
общедоступное_имя_dns
строка
всегда
Общедоступное имя DNS.

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

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

Пример:
True
приватный_ip_адрес
строка
всегда
Приватный IPv4-адрес сетевого интерфейса.

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

Пример:
True
статус
строка
всегда
Статус сетевого интерфейса.

Пример:
в_использовании
идентификатор_подсети
строка
всегда
Идентификатор подсети для сетевого интерфейса.

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

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

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

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

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

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

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

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

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

Пример:
hvm
vpc_id
словарь
всегда
Идентификатор VPC, в котором находится экземпляр.

Пример:
vpc-0011223344


Статус

  • Данный модуль не гарантирует обратную совместимость интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

  • 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.9/modules/ec2_instance_module.html

Spec-Zone.ru

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