Spec-Zone.ru › Ansible 2.11

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

Примечание

Этот плагин входит в коллекцию community.general (версия 2.0.1).

Для его установки используйте: 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. Имя сеанса, используемое при принятии роли. Если опущено, в вызов AssumeRole передается «ansible» в качестве имени сеанса. Поддерживает переменную окружения 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 просто обращается к метаданным http://100.100.100.200/latest/meta-data/ram/security-credentials/<ecs_role_name> для получения учетных данных STS. Это предпочтительный подход по сравнению с любым другим при работе в 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
строка
всегда
Состояние подключения.

Пример:
в_использовании
volume_id
строка
всегда
Идентификатор облачного диска.

Пример:
d-2zei53pjsi117y6gf9t6
cpu
целое число
всегда
Количество ядер процессора экземпляра.

Пример:
4
creation_time
строка
всегда
Время создания экземпляра.

Пример:
2018-06-25T04:08Z
description
строка
всегда
Описание экземпляра.

Пример:
мой экземпляр ansible
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 I/O.

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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/ali_instance_module.html

Spec-Zone.ru

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