Spec-Zone.ru › Ansible 2.6

ec2_instance — Создание и управление экземплярами EC2

Новая версия с 2.5.

  • Описание
    • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения
  • Статус
  • Техническое обслуживание
    • Автор

Описание

  • Сбор данных об экземплярах ec2 в AWS

Требования

Ниже приведены требования к хосту, на котором выполняется этот модуль.

  • 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 для включения покупки дополнительных кредитов ЦП.
detailed_monitoring
Разрешить сбор подробных метрик cloudwatch, что позволит получить более детальные оповещения.
ebs_optimized
Использовать ли оптимизированные EBS-тома, см. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
ec2_url
Адрес для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковая имеется.
filters По умолчанию:
{"subnet-id": "\u003cprovided-or-default subnet\u003e", "tag:Name": "\u003cprovided-Name-attribute\u003e"}
Словарь фильтров для применения при определении, соответствуют ли существующие экземпляры заданным условиям и требуют ли изменения. Каждый элемент словаря состоит из ключа фильтра и значения фильтра. См. http://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 переопределяет значение ramdisk по умолчанию для 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
Тег "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 (список идентификаторов групп безопасности), private_ip_addresses (list), 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
state
    Варианты:
  • present ←
  • terminated
  • running
  • started
  • stopped
  • restarted
  • rebooted
  • absent
Целевое состояние экземпляров
tags
Хэш/словарь тегов для добавления к новому экземпляру или для добавления/удаления из существующего.
tenancy
    Варианты:
  • dedicated
  • default
Тип аренды для использования экземпляром. По умолчанию — shared tenancy. Dedicated tenancy влечёт дополнительные расходы.
termination_protection
Включить ли защиту от удаления. Этот модуль не удалит экземпляр с активной защитой от удаления, её необходимо отключить предварительно.
tower_callback
Предварительно настроенные пользовательские данные для выполнения обратного вызова Tower (только Linux).
Взаимоисключающее с user_data.
Для экземпляров Windows для включения удалённого доступа через Ansible установите tower_callback.windows в true, и необязательно установите пароль администратора.
Если использовать 'windows' и 'set_password', обратный вызов в Tower не будет выполнен, но экземпляр будет готов принимать winrm-соединения из Ansible.
tower_address
IP-адрес или имя DNS сервера Tower. Должен быть доступен по этому адресу из VPC, в котором будет запущен этот экземпляр.
job_template_id
Целочисленный ID шаблона задания Tower или имя (имя поддерживается только для Tower 3.2+)
host_config_key
Ключ конфигурации хоста, сгенерированный шаблоном задания Tower.
user_data
Неструктурированные данные, доступные экземпляру ec2
validate_certs
bool

(добавлено в 1.5)
    Варианты:
  • no
  • yes ←
При значении "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 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"

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

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

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

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

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

Пример:
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
строка
всегда
Состояние подключения.

Пример:
подключено
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
строка
всегда
Указывает, включен ли подробный мониторинг. В противном случае включен базовый мониторинг.

Пример:
выключен
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
bool
always
Указывает, удаляется ли сетевой интерфейс при завершении работы экземпляра.

Пример:
True
device_index
int
always
Индекс устройства на экземпляре для подключения сетевого интерфейса.

status
string
always
Состояние подключения.

Пример:
attached
description
string
always
Описание.

Пример:
Мой интерфейс
groups
complex
always
Одна или несколько групп безопасности.

group_id
string
always
Идентификатор группы безопасности.

Пример:
sg-abcdef12
group_name
string
always
Имя группы безопасности.

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

ipv6_address
string
always
Адрес IPv6.

Пример:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
mac_address
string
always
MAC-адрес.

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

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

Пример:
01234567890
private_ip_address
string
always
IPv4-адрес сетевого интерфейса в подсети.

Пример:
10.0.0.1
private_ip_addresses
complex
always
Частные IPv4-адреса, связанные с сетевым интерфейсом.

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

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

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

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

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

Пример:
True
private_ip_address
string
always
Частный IPv4-адрес сетевого интерфейса.

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

Пример:
True
status
string
always
Состояние сетевого интерфейса.

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

Пример:
subnet-0123456
vpc_id
string
always
Идентификатор VPC для сетевого интерфейса.

Пример:
vpc-0123456
placement
complex
always
Расположение, где запущен экземпляр, если применимо.

availability_zone
string
always
Доступная зона экземпляра.

Пример:
ap-southeast-2a
group_name
string
always
Имя группы размещения, в которой находится экземпляр (для кластерных вычислительных экземпляров).

tenancy
string
always
Тип принадлежности экземпляра (если экземпляр работает в VPC).

Пример:
по умолчанию
private_dns_name
string
always
Приватное имя DNS.

Пример:
ip-10-0-0-1.ap-southeast-2.compute.internal
private_ip_address
string
always
IPv4-адрес сетевого интерфейса в подсети.

Пример:
10.0.0.1
product_codes
complex
always
Один или несколько кодов продукта.

product_code_id
string
always
Код продукта.

Пример:
aw0evgkw8ef3n2498gndfgasdfsd5cce
product_code_type
string
always
Тип кода продукта.

Пример:
marketplace
public_dns_name
string
always
Публичное имя DNS, назначенное экземпляру.

public_ip_address
string
always
Публичный IPv4-адрес, назначенный экземпляру.

Пример:
52.0.0.1
root_device_name
string
always
Имя устройства корневого устройства.

Пример:
/dev/sda1
root_device_type
string
always
Тип корневого устройства, используемого AMI.

Пример:
ebs
security_groups
complex
always
Один или несколько групп безопасности для экземпляра.

group_id
string
always
Идентификатор группы безопасности.

Пример:
sg-0123456
network.source_dest_check
bool
always
Указывает, включена ли проверка источника/назначения.

Пример:
True
state
complex
always
Текущее состояние экземпляра.

code
int
always
Низкий байт представляет состояние.

Пример:
16
name
string
always
Имя состояния.

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

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

Пример:
subnet-00abcdef
tags
dict
always
Любые метки, назначенные экземпляру.

virtualization_type
string
always
Тип виртуализации AMI.

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

Пример:
vpc-0011223344


Состояние

Этот модуль помечен как preview, что означает, что его интерфейс не гарантируется как обратная совместимость.

Техническое обслуживание

Этот модуль помечен как community, что означает, что он поддерживается сообществом Ansible. Подробнее см. Техническое обслуживание и поддержка модулей.

Список других модулей, поддерживаемых сообществом 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.6/modules/ec2_instance_module.html

Spec-Zone.ru

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