Spec-Zone.ru › Ansible

Модуль community.general.ali_instance — создание, запуск, остановка, перезапуск или завершение работы экземпляра в ECS; добавление экземпляра в группу безопасности или удаление из неё

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.

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

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

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

Требования

На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.

  • Python >= 3.6
  • footmark >= 1.19.0

Параметры

Параметр

Комментарии

alicloud_access_key

aliases: access_key_id, access_key

string

Ключ доступа Alibaba Cloud. Если он не задан, вместо него используется значение переменной среды ALICLOUD_ACCESS_KEY, ALICLOUD_ACCESS_KEY_ID.

alicloud_assume_role

aliases: assume_role

dictionary

Если указан ARN роли, Ansible попытается принять эту роль, используя предоставленные учетные данные.

Вложенный блок assume_role поддерживает alicloud_assume_role_arn, alicloud_assume_role_session_name, alicloud_assume_role_session_expiration и alicloud_assume_role_policy.

alicloud_assume_role_arn

aliases: assume_role_arn

string

role_arn Alibaba Cloud. ARN роли, которую нужно принять. Если ARN задан пустой строкой, переключение роли не выполняется. Поддерживается переменная среды ALICLOUD_ASSUME_ROLE_ARN. Ansible выполняется с предоставленными учетными данными.

alicloud_assume_role_session_expiration

aliases: assume_role_session_expiration

integer

session_expiration Alibaba Cloud. Время, по истечении которого завершается сеанс принятия роли. Допустимый диапазон значений — 900–3600 секунд. Значение по умолчанию — 3600 (в этом случае Alicloud использует собственное значение по умолчанию). Поддерживается переменная среды ALICLOUD_ASSUME_ROLE_SESSION_EXPIRATION.

alicloud_assume_role_session_name

aliases: assume_role_session_name

string

Имя сеанса Alibaba Cloud. Имя сеанса, используемое при принятии роли. Если параметр не указан, при вызове AssumeRole в качестве имени сеанса передается ‘ansible’. Поддерживается переменная среды ALICLOUD_ASSUME_ROLE_SESSION_NAME.

alicloud_region

aliases: region, region_id

string / обязательный

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

alicloud_secret_key

aliases: secret_access_key, secret_key

string

Секретный ключ Alibaba Cloud. Если он не задан, вместо него используется значение переменной среды ALICLOUD_SECRET_KEY, ALICLOUD_SECRET_ACCESS_KEY.

alicloud_security_token

aliases: security_token

string

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

allocate_public_ip

aliases: assign_public_ip

boolean

Следует ли назначить общедоступный IP-адрес новому экземпляру.

Варианты:

  • false ← (по умолчанию)
  • true

auto_renew

boolean

Следует ли автоматически продлевать оплату экземпляра.

Варианты:

  • false ← (по умолчанию)
  • true

auto_renew_period

integer

Продолжительность периода автоматического продления оплаты экземпляра. Обязателен, если auto_renew=true.

Варианты:

  • 1
  • 2
  • 3
  • 6
  • 12

availability_zone

aliases: alicloud_zone, zone_id

string

Идентификатор зоны доступности Aliyun, в которой следует запустить экземпляр. Если значение не указано, система выбирает зону автоматически.

count

integer

Количество новых экземпляров. Целое число, указывающее, сколько экземпляров, соответствующих count_tag, должно быть запущено. На основании этого значения экземпляры создаются или завершаются.

По умолчанию: 1

count_tag

string

count определяет, сколько экземпляров должно существовать на основе критериев конкретной метки. Это можно задать несколькими способами, примеры приведены в разделе EXAMPLES. Указанная count_tag уже должна существовать или передаваться как параметр tags. Если значение не указано, оно заменяется на instance_name.

description

string

Описание экземпляра ECS — строка длиной от 2 до 256 символов. Оно не может начинаться с http:// или https://.

dry_run

boolean

добавлено в community.general 0.2.0

Указывает, следует ли отправить запрос в режиме пробного запуска.

Если dry_run=true, отправляется только запрос в режиме пробного запуска, экземпляр не создается. Система проверяет, заданы ли необходимые параметры, а также проверяет формат запроса, разрешения службы и доступность экземпляров ECS. Если проверка завершается неудачно, возвращается соответствующий код ошибки. Если проверка проходит успешно, возвращается код ошибки DryRunOperation.

Если dry_run=false, отправляется запрос. Если проверка проходит успешно, экземпляр создается.

Варианты:

  • false ← (по умолчанию)
  • true

ecs_role_name

aliases: role_name

string

Имя роли RAM, назначенной экземпляру ECS для выполнения операций API. Его можно найти в разделе «Управление доступом» консоли Alibaba Cloud.

Если Ansible выполняется на экземпляре ECS с RAM, использующим роль RAM, Ansible обращается к метаданным http://100.100.100.200/latest/meta-data/ram/security-credentials/<ecs_role_name>, чтобы получить учетные данные STS. При выполнении в ECS этот способ предпочтительнее других, поскольку позволяет не прописывать учетные данные в коде. Вместо этого Ansible получает их по запросу, что снижает риск утечки.

force

boolean

Следует ли принудительно выполнять текущую операцию.

Варианты:

  • false ← (по умолчанию)
  • true

host_name

string

Имя хоста экземпляра. Упорядоченные имена хостов не поддерживаются.

image_id

aliases: image

string

Идентификатор образа, используемого для запуска экземпляров. Обязателен, если state=present и создаются новые экземпляры ECS.

include_data_disks

boolean

добавлено в community.general 0.2.0

Следует ли менять тип оплаты дисков экземпляра при изменении типа оплаты экземпляра.

Варианты:

  • false
  • true ← (по умолчанию)

instance_charge_type

string

Тип оплаты экземпляра.

Варианты:

  • "PrePaid"
  • "PostPaid" ← (по умолчанию)

instance_ids

list / elements=string

Список идентификаторов экземпляров. Требуется для операций с существующими экземплярами. Если он указан, count игнорируется.

instance_name

aliases: name

string

Имя экземпляра ECS — строка длиной от 2 до 128 китайских или английских символов. Оно должно начинаться с заглавной или строчной буквы либо китайского иероглифа и может содержать цифры, ., _ или -. Оно не может начинаться с http:// или https://.

instance_type

aliases: type

string

Тип экземпляра, используемый для запуска экземпляров. Обязателен, если state=present и создаются новые экземпляры ECS.

internet_charge_type

string

Тип оплаты за интернет для экземпляра ECS.

Варианты:

  • "PayByBandwidth" ← (по умолчанию)
  • "PayByTraffic"

key_name

aliases: keypair

string

Имя пары ключей, используемой для доступа к экземпляру ECS по SSH.

max_bandwidth_in

integer

Максимальная входящая пропускная способность из общедоступной сети, измеряемая в Мбит/с (мегабитах в секунду).

По умолчанию: 200

max_bandwidth_out

integer

Максимальная исходящая пропускная способность в общедоступную сеть, измеряемая в Мбит/с (мегабитах в секунду). Обязателен, если allocate_public_ip=true. Игнорируется, если allocate_public_ip=false.

По умолчанию: 0

password

string

Пароль для входа в экземпляр. Измененный пароль вступает в силу после перезагрузки экземпляров.

period

integer

Период оплаты экземпляра в месяцах. Обязателен, если instance_charge_type=PrePaid.

Допустимые значения: [1-9, 12, 24, 36].

По умолчанию: 1

period_unit

string

добавлено в community.general 0.2.0

Единица продолжительности, на которую приобретается ресурс. Используется, если instance_charge_type=PrePaid.

Варианты:

  • "Month" ← (по умолчанию)
  • "Week"

profile

string

Имя профиля Alicloud, указанное в общем файле учетных данных. Его также можно получить из переменной среды ALICLOUD_PROFILE.

purge_tags

boolean

добавлено в community.general 0.2.0

Удалять все метки экземпляра, не указанные в задаче. Если true, в каждой задаче, затрагивающей экземпляр, необходимо указывать все требуемые метки.

Варианты:

  • false ← (по умолчанию)
  • true

ram_role_name

string

добавлено в community.general 0.2.0

Имя роли RAM экземпляра.

security_groups

aliases: group_ids

list / elements=string

Список идентификаторов групп безопасности.

shared_credentials_file

string

Путь к общему файлу учетных данных. Его также можно получить из переменной среды ALICLOUD_SHARED_CREDENTIALS_FILE.

Если этот параметр не задан, но указан профиль, используется ~/.aliyun/config.json.

spot_price_limit

float

добавлено в community.general 0.2.0

Максимальная почасовая цена для прерываемого экземпляра. Этот параметр поддерживает не более трех знаков после запятой и применяется, если для параметра SpotStrategy задано значение SpotWithPriceLimit.

spot_strategy

string

добавлено в community.general 0.2.0

Режим назначения цены для экземпляра с оплатой по факту использования. Параметр действует, если instance_charge_type=PostPaid.

Варианты:

  • "NoSpot" ← (по умолчанию)
  • "SpotWithPriceLimit"
  • "SpotAsPriceGo"

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~500.

По умолчанию: 40

tags

aliases: instance_tags

dictionary

добавлено в community.general 0.2.0

Словарь меток экземпляра, которые нужно добавить к новому экземпляру или использовать для запуска/остановки экземпляра по метке. {"key":"value"}.

unique_suffix

boolean

добавлено в community.general 0.2.0

Указывает, следует ли добавлять к host_name последовательные суффиксы. Диапазон последовательных суффиксов — от 001 до 999.

Варианты:

  • false ← (по умолчанию)
  • true

user_data

string

Заданные пользователем данные для настройки поведения при запуске экземпляра ECS и передачи данных в экземпляр ECS. Действует только при запуске новых экземпляров ECS.

vswitch_id

псевдонимы: subnet_id

string

Идентификатор подсети, в которой будут запущены экземпляры (VPC).

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: отсутствует

Может работать в check_mode и возвращать прогноз изменения статуса, не изменяя целевой объект.

diff_mode

Поддержка: отсутствует

В режиме diff возвращает сведения об изменениях (или о том, что, возможно, необходимо изменить в check_mode).

Примечания

Примечание

  • Если параметры не заданы в модуле, можно использовать следующие переменные среды в порядке убывания приоритета: ALICLOUD_ACCESS_KEY or ALICLOUD_ACCESS_KEY_ID, ALICLOUD_SECRET_KEY or ALICLOUD_SECRET_ACCESS_KEY, ALICLOUD_REGION or 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 or 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

list / elements=string

Список идентификаторов экземпляров ECS.

Возвращается: всегда

Пример: ["i-12345er", "i-3245fs"]

instances

list / elements=dictionary

Список экземпляров ECS.

Возвращается: всегда

availability_zone

string

Зона доступности, в которой находится экземпляр.

Возвращается: всегда

Пример: "cn-beijing-a"

block_device_mappings

complex

Записи сопоставления блочных устройств для экземпляра.

Возвращается: всегда

attach_time

string

Временная метка начала подключения.

Возвращается: всегда

Пример: "2018-06-25T04:08:26Z"

delete_on_termination

boolean

Указывает, удаляется ли том при завершении работы экземпляра.

Возвращается: всегда

Пример: true

device_name

string

Имя устройства, доступное экземпляру.

Возвращается: всегда

Пример: "/dev/xvda"

status

string

Состояние подключения.

Возвращается: всегда

Пример: "in_use"

volume_id

string

Идентификатор облачного диска.

Возвращается: всегда

Пример: "d-2zei53pjsi117y6gf9t6"

cpu

integer

Количество ядер ЦП экземпляра.

Возвращается: всегда

Пример: 4

creation_time

string

Время создания экземпляра.

Возвращается: всегда

Пример: "2018-06-25T04:08Z"

description

string

Описание экземпляра.

Возвращается: всегда

Пример: "my ansible instance"

eip

complex

Назначение EIP, связанного с экземпляром.

Возвращается: всегда

allocation_id

string

Идентификатор EIP.

Возвращается: всегда

Пример: "eip-12345"

internet_charge_type

string

Тип тарификации интернета для EIP.

Возвращается: всегда

Пример: "paybybandwidth"

ip_address

string

IP-адрес EIP.

Возвращается: всегда

Пример: "42.10.2.2"

expired_time

string

Время истечения срока действия экземпляра.

Возвращается: всегда

Пример: "2099-12-31T15:59Z"

gpu

complex

Сведения о GPU экземпляра.

Возвращается: всегда

amount

integer

Количество GPU.

Возвращается: всегда

Пример: 0

spec

string

Спецификация GPU.

Возвращается: всегда

Пример: ""

host_name

string

Имя узла экземпляра.

Возвращается: всегда

Пример: "iZ2zewaoZ"

id

string

Псевдоним instance_id.

Возвращается: всегда

Пример: "i-abc12345"

image_id

string

Идентификатор образа, использованного для запуска экземпляра.

Возвращается: всегда

Пример: "m-0011223344"

inner_ip_address

string

Внутренний IPv4-адрес классического экземпляра.

Возвращается: всегда

Пример: "10.0.0.2"

instance_charge_type

string

Тип тарификации экземпляра.

Возвращается: всегда

Пример: "PostPaid"

instance_id

string

Идентификатор ресурса экземпляра ECS.

Возвращается: всегда

Пример: "i-abc12345"

instance_name

string

Имя экземпляра.

Возвращается: всегда

Пример: "my-ecs"

instance_type

string

Тип запущенного экземпляра.

Возвращается: всегда

Пример: "ecs.sn1ne.xlarge"

instance_type_family

string

Семейство типов, к которому относится экземпляр.

Возвращается: всегда

Пример: "ecs.sn1ne"

internet_charge_type

string

Способ тарификации пропускной способности сети.

Возвращается: всегда

Пример: "PayByBandwidth"

internet_max_bandwidth_in

integer

Максимальная входящая пропускная способность интернет-сети.

Возвращается: всегда

Пример: 200

internet_max_bandwidth_out

integer

Максимальная входящая пропускная способность интернет-сети.

Возвращается: всегда

Пример: 20

io_optimized

boolean

Указывает, оптимизирован ли экземпляр для операций ввода-вывода EBS.

Возвращается: всегда

Пример: false

memory

integer

Объем памяти экземпляра.

Возвращается: всегда

Пример: 8192

network_interfaces

complex

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

Возвращается: всегда

mac_address

string

MAC-адрес.

Возвращается: всегда

Пример: "00:11:22:33:44:55"

network_interface_id

string

Идентификатор сетевого интерфейса.

Возвращается: всегда

Пример: "eni-01234567"

primary_ip_address

string

Основной IPv4-адрес сетевого интерфейса в виртуальном коммутаторе.

Возвращается: всегда

Пример: "10.0.0.1"

osname

string

Название операционной системы экземпляра.

Возвращается: всегда

Пример: "CentOS"

ostype

string

Тип операционной системы экземпляра.

Возвращается: всегда

Пример: "linux"

private_ip_address

string

IPv4-адрес сетевого интерфейса в подсети.

Возвращается: всегда

Пример: "10.0.0.1"

public_ip_address

string

Публичный IPv4-адрес, назначенный экземпляру, или адрес EIP.

Возвращается: всегда

Пример: "43.0.0.1"

resource_group_id

string

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

Возвращается: всегда

Пример: "my-ecs-group"

security_groups

list / elements=dictionary

Одна или несколько групп безопасности экземпляра.

Возвращается: всегда

group_id

string

Идентификатор группы безопасности.

Возвращается: всегда

Пример: "sg-0123456"

group_name

string

Название группы безопасности.

Возвращается: всегда

Пример: "my-security-group"

spot_price_limit

float

Максимальная почасовая цена экземпляра с прерываемой нагрузкой.

Возвращается: всегда

Пример: 0.97

spot_strategy

string

Режим назначения цены для экземпляра с оплатой по мере использования.

Возвращается: всегда

Пример: "NoSpot"

status

string

Текущий статус экземпляра.

Возвращается: всегда

Пример: "running"

tags

dictionary

Все теги, назначенные экземпляру.

Возвращается: всегда

user_data

dictionary

Данные, заданные пользователем.

Возвращается: всегда

vpc_id

string

Идентификатор VPC, в которой находится экземпляр.

Возвращается: всегда

Пример: "vpc-0011223344"

vswitch_id

string

Идентификатор виртуального коммутатора, в котором работает экземпляр.

Возвращается: всегда

Пример: "vsw-dew00abcdef"

Авторы

  • He Guimin (@xiaozhu36)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь
  • Сообщить об ошибке
  • Предложить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/ali_instance_module.html

Spec-Zone.ru

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