community.aws.ec2_lc – Создание или удаление конфигураций запуска AWS Autoscaling
Примечание
Этот плагин входит в коллекцию community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Чтобы использовать его в книге задач, укажите: community.aws.ec2_lc.
Новое в версии 1.0.0: коллекции community.aws
Обзор
- Может создавать или удалять конфигурации запуска AWS Autoscaling.
- Работает с модулем ec2_asg для управления группами Autoscaling.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3 >= 1.4.4
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии | |
|---|---|---|---|
| assign_public_ip boolean |
| Используется для групп автоматического масштабирования, запускающих экземпляры в Amazon Virtual Private Cloud. Указывает, следует ли назначить публичный IP-адрес каждому экземпляру, запущенному в Amazon VPC. | |
| associate_public_ip_address boolean |
| Параметр associate_public_ip_address ничего не делает и будет удален после 2022-06-01 | |
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Использование параметров aws_access_key и profile одновременно устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_access_key, access_key | ||
| aws_ca_bundle путь | Расположение файла с набором сертификатов CA для проверки SSL-сертификатов. Используется только для модулей на основе boto3. Примечание: набор сертификатов CA читается со стороны модуля и может потребоваться явно скопировать его с контроллера, если он не запускается локально. | ||
| aws_config словарь | Словарь для изменения настроек botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для получения дополнительной информации о настройках boto. | ||
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Использование параметров aws_secret_key и profile одновременно устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: ec2_secret_key, secret_key | ||
| classic_link_vpc_id строка | Идентификатор VPC с включенной функцией ClassicLink. | ||
| classic_link_vpc_security_groups список / элементы=строка | Список идентификаторов групп безопасности, которые будут привязаны к экземплярам VPC с ClassicLink. | ||
| debug_botocore_endpoint_logs boolean |
| Использование логирования botocore.endpoint для анализа уникальных (а не общих) вызовов API "ресурс:действие" во время выполнения задачи, выводя результат в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, выполненного во время выполнения playbook. Также может использоваться переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. | |
| ebs_optimized boolean |
| Указывает, оптимизирован ли экземпляр для ввода/вывода EBS (true) или нет (false). | |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется модулями, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. псевдонимы: aws_endpoint_url, endpoint_url | ||
| image_id строка | Уникальный идентификатор AMI, который будет использоваться для группы. | ||
| instance_id строка | Идентификатор работающего экземпляра, который используется в качестве основы для конфигурации запуска. Может использоваться вместо image_id и instance_type. | ||
| instance_monitoring boolean |
| Указывает, запускаются ли экземпляры с подробным мониторингом. | |
| instance_profile_name строка | Имя или Amazon Resource Name (ARN) профиля экземпляра, связанного с ролью IAM для экземпляров. | ||
| instance_type строка | Тип экземпляра, который будет использоваться для экземпляра. Требуется при создании новой конфигурации запуска. | ||
| kernel_id строка | Идентификатор ядра для экземпляра EC2. | ||
| key_name строка | Имя SSH-ключа, используемого для доступа к управляемым экземплярам. | ||
| name строка / обязательно | Уникальное имя конфигурации. | ||
| placement_tenancy строка |
| Определяет, работает ли экземпляр на оборудовании с однопользовательской арендой или нет. Если не задано, AWS по умолчанию использует default. | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределит aws_access_key, aws_secret_key и security_token. Поддержка одновременного использования profile с ними устарела. aws_access_key, aws_secret_key и security_token будут сделаны взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | ||
| 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 можно указывать имена или ID групп безопасности, или их комбинацию. До версии 2.4 для экземпляров VPC нужно указывать ID групп безопасности, а для экземпляров EC2-Classic – имена или ID групп безопасности. | ||
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Использование параметров security_token и profile одновременно устарело и параметры будут сделаны взаимоисключающими после 2022-06-01. псевдонимы: aws_security_token, access_token | ||
| spot_price вещественное число | Цена за использование spot-инстансов. Применимо только для группы автоматического масштабирования со spot-инстансами. | ||
| state строка |
| Регистрация или дерегистрация экземпляра. | |
| user_data строка | Неструктурированные данные, доступные для экземпляра ec2. Взаимоисключающий с параметром user_data_path. | ||
| user_data_path путь | Путь к файлу, содержащему данные пользователя для экземпляров ec2. Взаимоисключающий с параметром user_data. | ||
| validate_certs boolean |
| При значении "нет", SSL-сертификаты не будут проверяться для версий boto >= 2.6.0. | |
| volumes список / элементы=словарь | Список словарей, определяющих создаваемые тома. Для любого тома размер, меньший 1, будет интерпретироваться как запрос не создавать том. | ||
| delete_on_termination boolean |
| Указывает, следует ли автоматически удалять том при завершении работы экземпляра. | |
| device_name строка / обязательно | Имя тома (например /dev/sda). | ||
| encrypted boolean |
| Указывает, должен ли том быть зашифрован с использованием KMS CMK 'aws/ebs'. | |
| ephemeral строка | Указывает, следует ли том сделать временным. Данные на временных томах теряются при остановке экземпляра. Взаимоисключающий с параметром snapshot. | ||
| iops целое число | Количество операций ввода/вывода в секунду, которые нужно зарезервировать для тома. Требуется при volume_type=io1. | ||
| no_device boolean |
| При no_device=true устройство не будет создано. | |
| snapshot string | Идентификатор моментальной копии EBS, который нужно скопировать при создании тома. Взаимоисключительно с параметром ephemeral. | ||
| volume_size integer | Размер тома (в GiB). Обязательно, если не задан один из параметров ephemeral, snapshot или no_device. | ||
| volume_type string | Тип создаваемого тома. См. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html для получения дополнительной информации о доступных типах томов. | ||
| vpc_id string | ID VPC, используется для преобразования имен групп безопасности в ID. | ||
Примечания
Примечание
- Конфигурации запуска Amazon ASG Autoscaling неизменны после создания, поэтому изменение конфигурации после её изменения не повлияет на конфигурацию запуска в AWS. Вам нужно создать новую конфигурацию и назначить её ASG.
- Тома с шифрованием поддерживаются на версиях >= 2.4
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,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,AWS_CA_BUNDLE - 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
community.aws.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
- name: create a launch configuration using a running instance id as a basis
community.aws.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
- name: create a launch configuration to omit the /dev/sdf EBS device that is included in the AMI image
community.aws.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
- name: Use EBS snapshot ID for volume
block:
- name: Set Volume Facts
ansible.builtin.set_fact:
volumes:
- device_name: /dev/sda1
volume_size: 20
ebs:
snapshot: snap-XXXX
volume_type: gp2
delete_on_termination: true
encrypted: no
- name: Create launch configuration
community.aws.ec2_lc:
name: lc1
image_id: ami-xxxx
assign_public_ip: yes
instance_type: t2.medium
key_name: my-key
security_groups: "['sg-xxxx']"
volumes: "{{ volumes }}"
register: lc_info
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание | |||
|---|---|---|---|---|---|
| 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), используемой конфигурацией запуска. Пример: ami-9be6f38c | |||
| instance_type строка | при state=present | Тип экземпляра для экземпляров. Пример: t1.micro | |||
| name строка | при state=present | Имя конфигурации запуска. Пример: launch_config_name | |||
| result сложное | при state=present | Детали спецификаций конфигурации запуска. | |||
| associate_public_ip_address булево | при 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 строка | при state=present | Идентификатор снимка. | |||
| volume_size строка | при state=present | Размер тома в ГБ. Пример: 100 | |||
| virtual_name строка | при state=present | Имя виртуального устройства (например, ephemeral0). Пример: ephemeral0 | |||
| classic_link_vpc_id строка | при 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), используемой конфигурацией запуска. Пример: 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 целое число | при 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 вещественное число | при state=present | Цена предложения при запуске Spot-экземпляров. | |||
| use_block_device_types булево | при state=present | Указывает, нужно ли подавлять отображение устройства. | |||
| user_data строка | при state=present | Данные пользователя, доступные экземплярам. | |||
| volume_type строка | при state=present | Тип тома (один из стандартных, io1, gp2). Пример: io1 | |||
| security_groups список / элементы=строка | при state=present | Наборы правил безопасности для ассоциации с экземплярами. Пример: ['sg-5e27db2f'] | |||
Авторы
- Gareth Rushgrove (@garethr)
- Willem van Ketwich (@wilvk)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/ec2_lc_module.html