Spec-Zone.ru › Ansible 2.10

community.general.ali_instance – Создание, запуск, остановка, перезапуск или завершение экземпляра в ECS. Добавление или удаление экземпляра в/из группы безопасности.

Примечание

Этот плагин входит в сборку community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в книге задач, укажите: community.general.ali_instance.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемые значения

Обзор

  • Создание, запуск, остановка, перезапуск, изменение или завершение экземпляров ECS.
  • Добавление или удаление экземпляров ECS в/из группы безопасности.

Требования

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

  • footmark >= 1.19.0
  • python >= 3.6

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
alicloud_access_key
строка
Ключ доступа к Alibaba Cloud. Если не задан, будет использовано значение переменной окружения ALICLOUD_ACCESS_KEY, ALICLOUD_ACCESS_KEY_ID.

Псевдонимы: access_key_id, access_key
alicloud_assume_role
словарь
Если указан ARN роли, Ansible попытается принять на себя эту роль, используя предоставленные учетные данные.
Вложенный блок assume_role поддерживает alicloud_assume_role_arn, alicloud_assume_role_session_name, alicloud_assume_role_session_expiration и alicloud_assume_role_policy

Псевдонимы: assume_role
alicloud_assume_role_arn
строка
ARN роли Alibaba Cloud. ARN роли, которую необходимо принять на себя. Если ARN установлена в пустую строку, переключение роли не выполняется. Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_ARN. ansible будет выполняться с предоставленными учетными данными.

Псевдонимы: assume_role_arn
alicloud_assume_role_session_expiration
целое число
Срок действия сеанса Alibaba Cloud. Время, по истечении которого созданный сеанс для принятия роли истекает. Допустимый диапазон значений 900-3600 секунд. По умолчанию 3600 (в этом случае Alicloud использует собственное значение по умолчанию). Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION

Псевдонимы: assume_role_session_expiration
alicloud_assume_role_session_name
строка
Имя сеанса Alibaba Cloud. Имя сеанса, используемого при принятии роли. Если опущено, 'ansible' передается в вызов AssumeRole в качестве имени сеанса. Поддерживает переменную окружения ALICLOUD_ASSUME_ROLE_SESSION_NAME

Псевдонимы: assume_role_session_name
alicloud_region
строка / обязательно
Регион Alibaba Cloud для использования. Если не указан, используется значение переменной окружения ALICLOUD_REGION, ALICLOUD_REGION_ID.

Псевдонимы: region, region_id
alicloud_secret_key
строка
Секретный ключ Alibaba Cloud. Если не задан, будет использовано значение переменной окружения ALICLOUD_SECRET_KEY, ALICLOUD_SECRET_ACCESS_KEY.

Псевдонимы: secret_access_key, secret_key
alicloud_security_token
строка
Токен безопасности Alibaba Cloud. Если не указан, используется значение переменной окружения ALICLOUD_SECURITY_TOKEN.

Псевдонимы: security_token
allocate_public_ip
логическое значение
    Варианты:
  • нет ←
  • да
Выделить публичный IP-адрес для нового экземпляра.

Псевдонимы: assign_public_ip
auto_renew
логическое значение
    Варианты:
  • нет ←
  • да
Автоматически продлевать оплату за экземпляр.
auto_renew_period
целое число
    Варианты:
  • 1
  • 2
  • 3
  • 6
  • 12
Срок действия автоматического продления оплаты за экземпляр. Требуется, когда auto_renew=True.
availability_zone
строка
Идентификатор зоны доступности Aliyun, в которой необходимо запустить экземпляр. Если не указан, будет назначен автоматически.

Псевдонимы: alicloud_zone, zone_id
count
целое число
По умолчанию:
1
Количество новых экземпляров. Целочисленное значение, указывающее, сколько экземпляров, соответствующих тегу count_tag, должно быть запущено. Экземпляры создаются или удаляются в соответствии с этим значением.
count_tag
строка
count определяет количество экземпляров на основе определенного критерия тега. Это можно выразить несколькими способами, что показано в разделе ПРИМЕРЫ. Указанный тег count_tag должен уже существовать или быть передан в качестве параметра tags. Если не указан, он будет заменен на instance_name.
description
строка
Описание экземпляра ECS, которое представляет собой строку от 2 до 256 символов. Не должно начинаться с http:// или https://.
dry_run
логическое значение
добавлен в 0.2.0 community.general
    Варианты:
  • нет ←
  • да
Указывает, следует ли отправлять запрос в режиме осушения.
Если dry_run=True, отправляется только запрос в режиме осушения, и экземпляры не создаются. Система проверяет, установлены ли необходимые параметры, и проверяет формат запроса, разрешения на использование службы и доступные экземпляры ECS. При сбое проверки возвращается соответствующий код ошибки. При успешной проверке возвращается код ошибки DryRunOperation.
Если dry_run=False, отправляется запрос. При успешной проверке экземпляр создается.
ecs_role_name
строка
Имя роли RAM, прикрепленной к экземпляру ECS для операций API. Его можно получить в разделе «Управление доступом» консоли Alibaba Cloud.
Если Ansible выполняется с экземпляра ECS с ролью RAM Instance, Ansible получит учетные данные STS из метаданных http://100.100.100.200/latest/meta-data/ram/security-credentials/<ecs_role_name>. Это предпочтительный подход при работе с ECS, так как вы избегаете жесткого кодирования учетных данных. Вместо этого Ansible динамически их получает, что уменьшает вероятность утечки.

Псевдонимы: role_name
force
логическое значение
    Варианты:
  • нет ←
  • да
Выполнять ли текущую операцию принудительно.
host_name
строка
Имя хоста экземпляра. Не поддерживаются упорядоченные имена хостов.
image_id
строка
Идентификатор образа, используемый для запуска экземпляров. Требуется, когда state=present, и при создании новых экземпляров ECS.

Псевдонимы: image
include_data_disks
логическое значение
добавлен в 0.2.0 community.general
    Варианты:
  • нет
  • да ←
Включить изменение типа оплаты за диски экземпляра при изменении типа оплаты экземпляра.
instance_charge_type
строка
    Варианты:
  • PrePaid
  • PostPaid ←
Тип оплаты за экземпляр.
instance_ids
список / элементы=строка
Список идентификаторов экземпляров. Требуется при необходимости работы с существующими экземплярами. Если он указан, count утрачивает свою эффективность.
instance_name
строка
Имя экземпляра ECS, которое представляет собой строку от 2 до 128 китайских или английских символов. Должно начинаться с прописной или строчной буквы или китайского символа и может содержать цифры, ".", "_", или "-". Не должно начинаться с http:// или https://.

Псевдонимы: name
instance_type
строка
Тип экземпляра, используемый для запуска экземпляров. Требуется, когда state=present, и при создании новых экземпляров ECS.

Псевдонимы: type
internet_charge_type
строка
    Варианты:
  • PayByBandwidth ←
  • PayByTraffic
Тип оплаты за интернет-трафик экземпляра ECS.
key_name
строка
Имя пары ключей, используемой для доступа к экземпляру ECS через SSH.

Псевдонимы: keypair
max_bandwidth_in
целое число
По умолчанию:
200
Максимальная входная пропускная способность из публичной сети, измеряемая в Мбит/с (мегабит в секунду).
max_bandwidth_out
целое число
По умолчанию:
0
Максимальная выходная пропускная способность в публичную сеть, измеряемая в Мбит/с (мегабит в секунду). Требуется, когда allocate_public_ip=True. Игнорируется, когда allocate_public_ip=False.
password
строка
Пароль для входа в экземпляр. После перезагрузки экземпляра измененный пароль вступит в силу.
period
целое число
По умолчанию:
1
Срок оплаты за экземпляр в месяцах. Требуется, когда instance_charge_type=PrePaid.
Допустимые значения: [1-9, 12, 24, 36].
period_unit
строка
добавлен в 0.2.0 community.general
    Варианты:
  • Месяц ←
  • Неделя
Единица измерения срока, за который вы покупаете ресурс. Действительно, когда instance_charge_type=PrePaid.
profile
строка
Имя профиля Alicloud, заданное в файле общих учетных данных. Также может быть получено из переменной окружения ALICLOUD_PROFILE.
purge_tags
логическое значение
добавлен в 0.2.0 community.general
    Варианты:
  • нет ←
  • да
Удалить теги, не указанные в задании, которые находятся на экземпляре. Если True, это означает, что необходимо указывать все желаемые теги в каждом задании, влияющем на экземпляр.
ram_role_name
строка
добавлен в 0.2.0 community.general
Имя роли RAM экземпляра.
security_groups
list / elements=string
Список идентификаторов групп безопасности.

псевдонимы: group_ids
shared_credentials_file
string
Путь к файлу общих учетных данных. Также можно указать переменную среды ALICLOUD_SHARED_CREDENTIALS_FILE.
Если этот параметр не задан и указан профиль, будет использоваться ~/.aliyun/config.json.
spot_price_limit
float
добавлено в 0.2.0 community.general
Максимальная почасовая цена для прерывимого экземпляра. Этот параметр поддерживает максимум три десятичных знака и применяется при установке параметра SpotStrategy в SpotWithPriceLimit.
spot_strategy
string
добавлено в 0.2.0 community.general
    Варианты:
  • NoSpot ←
  • SpotWithPriceLimit
  • SpotAsPriceGo
Режим торгов по принципу оплаты по факту использования для экземпляра. Этот параметр допустим, когда параметр InstanceChargeType установлен в PostPaid.
state
string
    Варианты:
  • present ←
  • running
  • stopped
  • restarted
  • absent
Состояние экземпляра после выполнения операции.
system_disk_category
string
    Варианты:
  • cloud_efficiency ←
  • cloud_ssd
Категория системного диска.
system_disk_description
string
Описание системного диска.
system_disk_name
string
Имя системного диска.
system_disk_size
integer
По умолчанию:
40
Размер системного диска в ГБ. Допустимые значения: от 40 до 500.
tags
dictionary
добавлено в 0.2.0 community.general
Словарь тегов экземпляра, для добавления к новому экземпляру или для запуска/остановки экземпляра по тегу. {"key":"value"}

псевдонимы: instance_tags
unique_suffix
boolean
добавлено в 0.2.0 community.general
    Варианты:
  • no ←
  • yes
Указывает, добавлять ли последовательные суффиксы к имени хоста. Последовательные суффиксы варьируются от 001 до 999.
user_data
string
Пользовательские данные для настройки начального поведения экземпляра ECS и передачи данных в экземпляр ECS. Действует только при запуске новых экземпляров ECS.
vswitch_id
string
Идентификатор подсети для запуска экземпляров (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_ECS_ROLE_NAME, ALICLOUD_SHARED_CREDENTIALS_FILE, ALICLOUD_PROFILE, ALICLOUD_ASSUME_ROLE_ARN, ALICLOUD_ASSUME_ROLE_SESSION_NAME, ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION,
  • 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
      community.general.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 }}'
        tags:
            Name: created_one
        host_name: '{{ host_name }}'
        password: '{{ password }}'

    - name: With count and count_tag to create a number of instances
      community.general.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 }}'
        tags:
            Name: created_one
            Version: 0.1
        count: 2
        count_tag:
            Name: created_one
        host_name: '{{ host_name }}'
        password: '{{ password }}'

    - name: Start instance
      community.general.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
instance_type_family
строка
всегда
Семейство типов экземпляров, к которому относится экземпляр.

Пример:
ecs.sn1ne
internet_charge_type
строка
всегда
Способ оплаты сетевой пропускной способности.

Пример:
PayByBandwidth
internet_max_bandwidth_in
целое число
всегда
Максимальная входящая пропускная способность из интернета.

Пример:
200
internet_max_bandwidth_out
целое число
всегда
Максимальная исходящая пропускная способность в интернет.

Пример:
20
io_optimized
булево
всегда
Указывает, оптимизирован ли экземпляр для ввода-вывода EBS.

memory
целое число
всегда
Объем памяти экземпляра.

Пример:
8192
network_interfaces
сложный тип
всегда
Один или несколько сетевых интерфейсов для экземпляра.

mac_address
строка
всегда
MAC-адрес.

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

Пример:
eni-01234567
primary_ip_address
строка
всегда
Основной IPv4-адрес сетевого интерфейса внутри vswitch.

Пример:
10.0.0.1
osname
строка
всегда
Имя операционной системы экземпляра.

Пример:
CentOS
ostype
строка
всегда
Тип операционной системы экземпляра.

Пример:
linux
private_ip_address
строка
всегда
IPv4-адрес сетевого интерфейса внутри подсети.

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

Пример:
43.0.0.1
resource_group_id
строка
всегда
Идентификатор группы ресурсов, к которой принадлежит экземпляр.

Пример:
my-ecs-group
security_groups
список / элементы=словарь
всегда
Один или несколько наборов правил безопасности для экземпляра.

group_id
строка
всегда
Идентификатор набора правил безопасности.

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

Пример:
my-security-group
spot_price_limit
float
always
Максимальная почасовая цена для преемственной инстанции.

Пример:
0.97
spot_strategy
string
always
Режим торгов для инстанции платы по факту использования.

Пример:
NoSpot
status
string
always
Текущий статус инстанции.

Пример:
running
tags
dictionary
always
Присвоенные теги для инстанции.

user_data
dictionary
always
Данные, определённые пользователем.

vpc_id
string
always
Идентификатор VPC, в котором находится инстанция.

Пример:
vpc-0011223344
vswitch_id
string
always
Идентификатор vswitch, в котором работает инстанция.

Пример:
vsw-dew00abcdef


Авторы

  • 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.10/collections/community/general/ali_instance_module.html

Spec-Zone.ru

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