ali_instance – Создание, запуск, остановка, перезапуск или завершение экземпляра в ECS. Добавление или удаление экземпляра в/из группы безопасности
Новое в версии 2.8.
Обзор
- Создание, запуск, остановка, перезапуск, изменение или завершение экземпляров ecs.
- Добавление или удаление экземпляров ecs в/из группы безопасности.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- footmark >= 1.1.16
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| alicloud_access_key строка | Ключ доступа к Aliyun Cloud. Если не задан, используется значение переменной окружения ALICLOUD_ACCESS_KEY, ALICLOUD_ACCESS_KEY_ID. псевдонимы: access_key_id, access_key | |
| alicloud_region строка | Регион Aliyun Cloud для использования. Если не указан, используется значение переменной окружения ALICLOUD_REGION, ALICLOUD_REGION_ID. псевдонимы: region, region_id | |
| alicloud_secret_key строка | Секретный ключ доступа к Aliyun Cloud. Если не задан, используется значение переменной окружения ALICLOUD_SECRET_KEY, ALICLOUD_SECRET_ACCESS_KEY. псевдонимы: secret_access_key, secret_key | |
| alicloud_security_token строка | Токен безопасности Aliyun Cloud. Если не указан, используется значение переменной окружения ALICLOUD_SECURITY_TOKEN. псевдонимы: security_token | |
| allocate_public_ip логический |
| Назначить общедоступный IP-адрес для нового экземпляра. псевдонимы: assign_public_ip |
| auto_renew логический |
| Автоматически продлевать оплату за экземпляр. |
| auto_renew_period - |
| Срок автоматического продления оплаты за экземпляр. Требуется, когда auto_renew=True. |
| availability_zone - | Идентификатор зоны доступности Aliyun, в которой нужно запустить экземпляр. Если не указан, будет назначен автоматически. псевдонимы: alicloud_zone | |
| count - | По умолчанию: 1 | Количество новых экземпляров. Целочисленное значение, указывающее, сколько экземпляров, соответствующих тегу count_tag, должно работать. Экземпляры создаются или завершаются в зависимости от этого значения. |
| count_tag - |
count определяет количество экземпляров на основе определенных критериев тегов. Это может быть выражено различными способами, и примеры показаны в разделе ПРИМЕРЫ. Указанный тег count_tag должен уже существовать или быть передан как параметр instance_tags. Если не указан, используется instance_name. | |
| description - | Описание экземпляра ECS, представляющее собой строку от 2 до 256 символов. Не должно начинаться с http:// или https://. | |
| force логический |
| Требуется ли выполнение текущей операции в принудительном порядке. |
| host_name - | Имя хоста экземпляра. | |
| image_id - | Идентификатор образа, используемый для запуска экземпляров. Требуется, когда state=present, и при создании новых экземпляров ECS.псевдонимы: image | |
| instance_charge_type - |
| Тип оплаты за экземпляр. |
| instance_ids - | Список идентификаторов экземпляров. Требуется при работе с существующими экземплярами. Если указан, count становится неэффективным. | |
| instance_name - | Имя экземпляра ECS, которое представляет собой строку от 2 до 128 китайских или английских символов. Оно должно начинаться с заглавной/строчной буквы или китайского символа и может содержать цифры, ".", "_" или "-". Не должно начинаться с http:// или https://. псевдонимы: name | |
| instance_tags - | Хэш/словарь тегов экземпляра для добавления к новому экземпляру или для запуска/остановки экземпляра по тегу. {"key":"value"}
псевдонимы: tags | |
| instance_type - | Тип экземпляра, используемый для запуска экземпляров. Требуется, когда state=present, и при создании новых экземпляров ECS.псевдонимы: type | |
| internet_charge_type - |
| Тип оплаты за интернет-трафик экземпляра ECS. |
| key_name - | Имя пары ключей, используемой для доступа к экземпляру ECS через SSH. псевдонимы: keypair | |
| max_bandwidth_in - | По умолчанию: 200 | Максимальная входящая пропускная способность из общедоступной сети, измеряется в Мбит/с. |
| max_bandwidth_out - | По умолчанию: 0 | Максимальная исходящая пропускная способность в общедоступную сеть, измеряется в Мбит/с. |
| password - | Пароль для входа в экземпляр. После перезагрузки экземпляра измененный пароль вступит в силу. | |
| period - | По умолчанию: 1 | Срок оплаты за экземпляр в месяцах. Требуется, когда instance_charge_type=PrePaid. Допустимые значения: [1-9, 12, 24, 36]. |
| security_groups - | Список идентификаторов групп безопасности. | |
| state - |
| Состояние экземпляра после выполнения операции. |
| system_disk_category - |
| Категория системного диска. |
| system_disk_description - | Описание системного диска. | |
| system_disk_name - | Имя системного диска. | |
| system_disk_size - | По умолчанию: 40 | Размер системного диска в ГБ. Допустимые значения: 40~500. |
| user_data - | Пользовательские данные для настройки поведения запуска экземпляра ECS и для передачи данных в экземпляр ECS. Действует только при запуске новых экземпляров ECS. | |
| vswitch_id - | Идентификатор подсети, в которой нужно запустить экземпляры (VPC). псевдонимы: subnet_id |
Примечания
Примечание
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
ALICLOUD_ACCESS_KEYилиALICLOUD_ACCESS_KEY_ID,ALICLOUD_SECRET_KEYилиALICLOUD_SECRET_ACCESS_KEY,ALICLOUD_REGIONилиALICLOUD_REGION_ID,ALICLOUD_SECURITY_TOKEN -
ALICLOUD_REGIONилиALICLOUD_REGION_IDобычно используются для указания региона ALICLOUD, когда это необходимо, но это также можно настроить в файле конфигурации footmark
Примеры
# basic provisioning example vpc network
- name: basic provisioning example
hosts: localhost
vars:
alicloud_access_key: <your-alicloud-access-key-id>
alicloud_secret_key: <your-alicloud-access-secret-key>
alicloud_region: cn-beijing
image: ubuntu1404_64_40G_cloudinit_20160727.raw
instance_type: ecs.n4.small
vswitch_id: vsw-abcd1234
assign_public_ip: True
max_bandwidth_out: 10
host_name: myhost
password: mypassword
system_disk_category: cloud_efficiency
system_disk_size: 100
internet_charge_type: PayByBandwidth
security_groups: ["sg-f2rwnfh23r"]
instance_ids: ["i-abcd12346", "i-abcd12345"]
force: True
tasks:
- name: launch ECS instance in VPC network
ali_instance:
alicloud_access_key: '{{ alicloud_access_key }}'
alicloud_secret_key: '{{ alicloud_secret_key }}'
alicloud_region: '{{ alicloud_region }}'
image: '{{ image }}'
system_disk_category: '{{ system_disk_category }}'
system_disk_size: '{{ system_disk_size }}'
instance_type: '{{ instance_type }}'
vswitch_id: '{{ vswitch_id }}'
assign_public_ip: '{{ assign_public_ip }}'
internet_charge_type: '{{ internet_charge_type }}'
max_bandwidth_out: '{{ max_bandwidth_out }}'
instance_tags:
Name: created_one
host_name: '{{ host_name }}'
password: '{{ password }}'
- name: with count and count_tag to create a number of instances
ali_instance:
alicloud_access_key: '{{ alicloud_access_key }}'
alicloud_secret_key: '{{ alicloud_secret_key }}'
alicloud_region: '{{ alicloud_region }}'
image: '{{ image }}'
system_disk_category: '{{ system_disk_category }}'
system_disk_size: '{{ system_disk_size }}'
instance_type: '{{ instance_type }}'
assign_public_ip: '{{ assign_public_ip }}'
security_groups: '{{ security_groups }}'
internet_charge_type: '{{ internet_charge_type }}'
max_bandwidth_out: '{{ max_bandwidth_out }}'
instance_tags:
Name: created_one
Version: 0.1
count: 2
count_tag:
Name: created_one
host_name: '{{ host_name }}'
password: '{{ password }}'
- name: start instance
ali_instance:
alicloud_access_key: '{{ alicloud_access_key }}'
alicloud_secret_key: '{{ alicloud_secret_key }}'
alicloud_region: '{{ alicloud_region }}'
instance_ids: '{{ instance_ids }}'
state: 'running'
- name: reboot instance forcibly
ecs:
alicloud_access_key: '{{ alicloud_access_key }}'
alicloud_secret_key: '{{ alicloud_secret_key }}'
alicloud_region: '{{ alicloud_region }}'
instance_ids: '{{ instance_ids }}'
state: 'restarted'
force: '{{ force }}'
- name: Add instances to an security group
ecs:
alicloud_access_key: '{{ alicloud_access_key }}'
alicloud_secret_key: '{{ alicloud_secret_key }}'
alicloud_region: '{{ alicloud_region }}'
instance_ids: '{{ instance_ids }}'
security_groups: '{{ security_groups }}'
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | ||
|---|---|---|---|---|
| ids список | всегда | Список идентификаторов экземпляров ECS Пример: ['i-12345er', 'i-3245fs'] | ||
| instances сложный | всегда | Список экземпляров ECS | ||
| availability_zone строка | всегда | Зона доступности, в которой находится экземпляр. Пример: cn-beijing-a | ||
| block_device_mappings сложный | всегда | Любые записи сопоставления блочных устройств для экземпляра. | ||
| attach_time строка | всегда | Отметка времени, когда началось подключение. Пример: 2018-06-25T04:08:26Z | ||
| delete_on_termination булево | всегда | Указывает, удаляется ли том при завершении работы экземпляра. Пример: True | ||
| device_name строка | всегда | Имя устройства, доступного экземпляру (например, /dev/xvda). Пример: /dev/xvda | ||
| status строка | всегда | Состояние подключения. Пример: in_use | ||
| volume_id строка | всегда | Идентификатор облачного диска. Пример: d-2zei53pjsi117y6gf9t6 | ||
| cpu целое число | всегда | Количество ядер процессора экземпляра. Пример: 4 | ||
| creation_time строка | всегда | Время создания экземпляра. Пример: 2018-06-25T04:08Z | ||
| description строка | всегда | Описание экземпляра. Пример: my ansible instance | ||
| eip сложный | всегда | Атрибуция EIP, связанного с экземпляром. | ||
| allocation_id строка | всегда | Идентификатор EIP. Пример: eip-12345 | ||
| internet_charge_type строка | всегда | Тип оплаты интернета EIP. Пример: paybybandwidth | ||
| ip_address строка | всегда | Адрес EIP. Пример: 42.10.2.2 | ||
| expired_time строка | всегда | Время истечения срока действия экземпляра. Пример: 2099-12-31T15:59Z | ||
| gpu сложный | всегда | Атрибуция GPU экземпляра. | ||
| amount целое число | всегда | Количество GPU. | ||
| spec строка | всегда | Спецификация GPU. | ||
| host_name строка | всегда | Имя хоста экземпляра. Пример: iZ2zewaoZ | ||
| id строка | всегда | Псевдоним instance_id. Пример: i-abc12345 | ||
| image_id строка | всегда | Идентификатор образа, используемого для запуска экземпляра. Пример: m-0011223344 | ||
| inner_ip_address строка | всегда | Внутренний IPv4-адрес классического экземпляра. Пример: 10.0.0.2 | ||
| instance_charge_type строка | всегда | Тип оплаты экземпляра. Пример: PostPaid | ||
| instance_id строка | всегда | Идентификатор ресурса экземпляра ECS. Пример: i-abc12345 | ||
| instance_name строка | всегда | Имя экземпляра. Пример: my-ecs | ||
| instance_type строка | всегда | Тип экземпляра запущенного экземпляра. Пример: ecs.sn1ne.xlarge | ||
| internet_charge_type строка | всегда | Способ оплаты сетевой пропускной способности. Пример: PayByBandwidth | ||
| internet_max_bandwidth_in целое число | всегда | Максимальная входящая пропускная способность из интернета. Пример: 200 | ||
| internet_max_bandwidth_out целое число | всегда | Максимальная входящая пропускная способность из интернета. Пример: 20 | ||
| io_optimized булево | всегда | Указывает, оптимизирован ли экземпляр для ввода/вывода EBS. | ||
| memory integer | always | Размер памяти экземпляра. Пример: 8192 | ||
| network_interfaces complex | always | Один или несколько сетевых интерфейсов для экземпляра. | ||
| mac_address string | always | MAC-адрес. Пример: 00:11:22:33:44:55 | ||
| network_interface_id string | always | Идентификатор сетевого интерфейса. Пример: eni-01234567 | ||
| primary_ip_address string | always | Основной IPv4-адрес сетевого интерфейса в vswitch. Пример: 10.0.0.1 | ||
| osname string | always | Имя операционной системы управляемого экземпляра. Пример: CentOS | ||
| ostype string | always | Тип операционной системы управляемого экземпляра. Пример: linux | ||
| private_ip_address string | always | IPv4-адрес сетевого интерфейса в подсети. Пример: 10.0.0.1 | ||
| public_ip_address string | always | Присвоенный публичный IPv4-адрес экземпляру. Пример: 43.0.0.1 | ||
| resource_group_id string | always | Идентификатор группы ресурсов, к которой принадлежит экземпляр. Пример: my-ecs-group | ||
| security_groups list of complex | always | Одна или несколько групп безопасности для экземпляра. | ||
| group_id string | always | Идентификатор группы безопасности. Пример: sg-0123456 | ||
| group_name string | always | Имя группы безопасности. Пример: my-security-group | ||
| status string | always | Текущий статус экземпляра. Пример: running | ||
| tags dictionary | always | Присвоенные теги экземпляру. | ||
| vpc_id dictionary | always | Идентификатор VPC, в котором находится экземпляр. Пример: vpc-0011223344 | ||
| vswitch_id string | always | Идентификатор vswitch, в котором работает экземпляр. Пример: vsw-dew00abcdef | ||
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- He Guimin (@xiaozhu36)
Подсказка
Если вы заметили какие-либо проблемы в этом документе, вы можете отредактировать его, чтобы улучшить его.
© 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/ali_instance_module.html