ec2_lc – Создание или удаление конфигураций запуска AWS Autoscaling
Обзор
- Может создавать или удалять конфигурации запуска AWS Autoscaling
- Работает с модулем ec2_asg для управления группами Autoscaling
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3 >= 1.4.4
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| assign_public_ip - | Используется для групп Auto Scaling, запускающих экземпляры в Amazon Virtual Private Cloud. Указывает, нужно ли назначать общедоступный IP-адрес каждому экземпляру, запущенному в Amazon 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 | |
| classic_link_vpc_id - добавлено в 2.0 | Идентификатор VPC с включённой ClassicLink | |
| classic_link_vpc_security_groups - добавлено в 2.0 | Список идентификаторов групп безопасности, которые нужно связать с экземплярами ClassicLink VPC. | |
| debug_botocore_endpoint_logs логический тип добавлено в 2.8 |
| Использовать логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов "resource:action" во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода в полный список, созданный во время выполнения playbook. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| ebs_optimized - | По умолчанию: "нет" | Указывает, оптимизирован ли экземпляр для ввода-вывода EBS (true) или нет (false). |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль будет использовать конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая есть. | |
| image_id - | Уникальный идентификатор AMI, который будет использоваться для группы | |
| instance_id - добавлено в 2.4 | Идентификатор работающего экземпляра, который будет использоваться в качестве основы для конфигурации запуска. Может использоваться вместо image_id и instance_type. | |
| instance_monitoring логический тип |
| Указывает, запускаются ли экземпляры с подробным мониторингом. |
| instance_profile_name - | Имя или Amazon Resource Name (ARN) профиля экземпляра, связанного с ролью IAM для экземпляров. | |
| instance_type - / обязательно | Тип экземпляра, используемый для экземпляра | |
| kernel_id - | Идентификатор ядра для экземпляра EC2 | |
| key_name - | Имя SSH-ключа, используемого для доступа к управляемым экземплярам | |
| name - / обязательно | Уникальное имя конфигурации | |
| placement_tenancy - добавлено в 2.4 | По умолчанию: "default" | Определяет, работает ли экземпляр на аппаратном обеспечении с однопользовательской арендой или нет. |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| ramdisk_id - | Идентификатор RAM-диска для экземпляров. | |
| region строка | AWS-регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| security_groups - | Список групп безопасности для применения к экземплярам. С версии 2.4 можно указывать имена или идентификаторы групп безопасности, или их сочетание. До версии 2.4 для экземпляров VPC указывайте идентификаторы групп безопасности, а для экземпляров EC2-Classic — имена или идентификаторы групп безопасности. | |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| spot_price - | Цена спот-заявки. Применимо только для группы Autoscaling с спот-экземплярами. | |
| state - |
| Регистрировать или дерегистрировать экземпляр |
| user_data - | Неструктурированные данные, доступные экземпляру ec2. Взаимоисключающее с user_data_path. | |
| user_data_path - добавлено в 2.3 | Путь к файлу, содержащему данные пользователя для экземпляров ec2. Взаимоисключающее с user_data. | |
| validate_certs логический тип |
| При значении "нет", сертификаты SSL для boto версий >= 2.6.0 не будут проверяться. |
| volumes - | Список словарей томов, каждый из которых содержит имя устройства и необязательно ephemeral id или snapshot id. Размер и тип (и количество операций ввода-вывода для типа устройства ввода-вывода) должны быть указаны для нового тома или корневого тома, а также могут быть переданы для снимка тома. Для любого тома размер тома, меньший 1, будет интерпретироваться как запрос на то, чтобы том не создавался. | |
| vpc_id - добавлено в 2.4 | Идентификатор VPC, используется при преобразовании имён групп безопасности в идентификаторы. |
Примечания
Примечание
- Конфигурации запуска Amazon ASG Autoscaling являются неизменяемыми после создания, поэтому изменение конфигурации после её изменения не повлияет на конфигурацию запуска в AWS. Вы должны создать новую конфигурацию и назначить её ASG вместо этого.
- Шифрованные тома поддерживаются в версиях >= 2.4
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
# create a launch configuration using an AMI image and instance type as a basis
- name: note that encrypted volumes are only supported in >= Ansible 2.4
ec2_lc:
name: special
image_id: ami-XXX
key_name: default
security_groups: ['group', 'group2' ]
instance_type: t1.micro
volumes:
- device_name: /dev/sda1
volume_size: 100
volume_type: io1
iops: 3000
delete_on_termination: true
encrypted: true
- device_name: /dev/sdb
ephemeral: ephemeral0
# create a launch configuration using a running instance id as a basis
- ec2_lc:
name: special
instance_id: i-00a48b207ec59e948
key_name: default
security_groups: ['launch-wizard-2' ]
volumes:
- device_name: /dev/sda1
volume_size: 120
volume_type: io1
iops: 3000
delete_on_termination: true
# create a launch configuration to omit the /dev/sdf EBS device that is included in the AMI image
- ec2_lc:
name: special
image_id: ami-XXX
key_name: default
security_groups: ['group', 'group2' ]
instance_type: t1.micro
volumes:
- device_name: /dev/sdf
no_device: true
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое значение | Описание | |||
|---|---|---|---|---|---|
| arn строка | при state=present | Amazon Resource Name (ARN) конфигурации запуска. Пример: arn:aws:autoscaling:us-east-1:148830907657:launchConfiguration:888d9b58-d93a-40c4-90cf-759197a2621a:launchConfigurationName/launch_config_name | |||
| changed логический тип | всегда | Изменилось ли состояние конфигурации запуска. | |||
| created_time строка | при state=present | Дата и время создания конфигурации запуска. Пример: 2017-11-03 23:46:44.841000 | |||
| image_id строка | при state=present | Идентификатор Amazon Machine Image, используемый конфигурацией запуска. Пример: ami-9be6f38c | |||
| instance_type строка | при state=present | Тип экземпляра для экземпляров. Пример: t1.micro | |||
| name строка | при state=present | Имя конфигурации запуска. Пример: launch_config_name | |||
| result сложный тип | при state=present | Подробные параметры конфигурации запуска. | |||
| associate_public_ip_address NoneType | при state=present | (EC2-VPC) Указывает, следует ли назначать общедоступный IP-адрес каждому экземпляру. | |||
| block_device_mappings сложный тип | при state=present | Карта отображения блочных устройств, которая определяет блочные устройства. | |||
| device_name строка | при state=present | Имя устройства, доступного экземпляру EC2 (например, /dev/sdh или xvdh). Пример: /dev/sda1 | |||
| ebs сложный тип | при state=present | Информация об Amazon EBS-томе. | |||
| snapshot_id NoneType | при state=present | Идентификатор моментального снимка. | |||
| volume_size строка | при state=present | Размер тома в ГБ. Пример: 100 | |||
| virtual_name NoneType | при state=present | Имя виртуального устройства (например, ephemeral0). | |||
| classic_link_vpc_id NoneType | при state=present | Идентификатор VPC, поддерживающей ClassicLink, для подключения экземпляров EC2-Classic. | |||
| classic_link_vpc_security_groups список | при state=present | Идентификаторы одного или нескольких групп безопасности для VPC, указанной в ClassicLinkVPCId. | |||
| created_time строка | при state=present | Дата и время создания конфигурации запуска. Пример: 2017-11-03 23:46:44.841000 | |||
| delete_on_termination логический тип | при state=present | Указывает, будет ли том удален при завершении работы экземпляра. Пример: True | |||
| ebs_optimized логический тип | при state=present | Указывает, оптимизирован ли экземпляр для ввода-вывода EBS (true) или нет (false). | |||
| image_id строка | при state=present | Идентификатор Amazon Machine Image, используемый конфигурацией запуска. Пример: ami-9be6f38c | |||
| instance_monitoring логический тип | при state=present | Указывает, будут ли экземпляры в этой группе запускаться с подробным (true) или базовым (false) мониторингом. Пример: True | |||
| instance_profile_name строка | при state=present | Имя или Amazon Resource Name (ARN) профиля экземпляра, связанного с ролью IAM для экземпляра. | |||
| instance_type строка | при state=present | Тип экземпляра для экземпляров. Пример: t1.micro | |||
| iops NoneType | при state=present | Количество операций ввода-вывода в секунду (IOPS), которые необходимо выделить для тома. | |||
| kernel_id строка | при state=present | Идентификатор ядра, связанного с AMI. | |||
| key_name строка | при state=present | Имя пары ключей. Пример: testkey | |||
| launch_configuration_arn строка | при state=present | Amazon Resource Name (ARN) конфигурации запуска. Пример: arn:aws:autoscaling:us-east-1:148830907657:launchConfiguration:888d9b58-d93a-40c4-90cf-759197a2621a:launchConfigurationName/launch_config_name | |||
| member строка | при state=present | Пример: | |||
| name строка | при state=present | Имя конфигурации запуска. Пример: launch_config_name | |||
| PlacementTenancy строка | при state=present | Тип аренды экземпляров, либо default, либо dedicated. Пример: default | |||
| ramdisk_id строка | при state=present | Идентификатор RAM-диска, связанного с AMI. | |||
| security_groups список | при state=present | Группы безопасности, которые необходимо связать с экземплярами. Пример: ['sg-5e27db2f'] | |||
| spot_price NoneType | when state=present | Цена предложения при запуске Spot Instances. | |||
| use_block_device_types boolean | when state=present | Указывает, нужно ли подавлять отображение устройства. | |||
| user_data string | when state=present | Доступные данные пользователя для экземпляров. | |||
| volume_type NoneType | when state=present | Тип тома (один из стандартных, io1, gp2). | |||
| security_groups list | when state=present | Безопасные группы для ассоциации с экземплярами. Пример: ['sg-5e27db2f'] | |||
Статус
- Данный модуль гарантированно не будет иметь обратной несовместимости в будущих изменениях. [stableinterface]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Gareth Rushgrove (@garethr)
- Willem van Ketwich (@wilvk)
Подсказка
Если вы заметили какие-либо проблемы в этом документе, вы можете отредактировать этот документ, чтобы улучшить его.
© 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_lc_module.html