Spec-Zone.ru › Ansible

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

Примечание

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

У вас, возможно, уже установлена эта коллекция, если вы используете пакет 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

псевдонимы: access_key_id, access_key

строка

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

alicloud_assume_role

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

словарь

Если указан 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

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

строка

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

alicloud_assume_role_session_expiration

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

целое число

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

alicloud_assume_role_session_name

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

строка

Идентификатор сессии Alibaba Cloud. Имя сессии, используемой при принятии роли. Если опущено, «ansible» передается в вызов AssumeRole в качестве имени сессии. Поддерживает переменную среды ALICLOUD_ASSUME_ROLE_SESSION_NAME.

alicloud_region

псевдонимы: region, region_id

строка / обязательный

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

alicloud_secret_key

псевдонимы: secret_access_key, secret_key

строка

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

alicloud_security_token

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

строка

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

allocate_public_ip

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

логический тип

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

Варианты:

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

auto_renew

логический тип

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

Варианты:

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

auto_renew_period

целое число

Срок автоматического продления платы за экземпляр. Требуется, когда auto_renew=true.

Варианты:

  • 1
  • 2
  • 3
  • 6
  • 12

availability_zone

псевдонимы: alicloud_zone, zone_id

строка

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

count

целое число

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

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

count_tag

строка

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

description

строка

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

END_OF_DOCUMENT_MARKER

dry_run

boolean

added in 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 Instance и RAM Role, 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

added in 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

END_OF_DOCUMENT_MARKER

period_unit

string

added in community.general 0.2.0

Единица измерения периода, на который вы приобретаете ресурс. Действительно, когда instance_charge_type=PrePaid.

Варианты:

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

profile

string

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

purge_tags

boolean

added in community.general 0.2.0

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

Варианты:

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

ram_role_name

string

added in 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

added in community.general 0.2.0

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

spot_strategy

string

added in community.general 0.2.0

Режим торгов для экземпляра pay-as-you-go. Этот параметр действителен, когда параметр InstanceChargeType установлен в 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

added in community.general 0.2.0

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

unique_suffix

boolean

added in community.general 0.2.0

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

Варианты:

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

user_data

string

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

vswitch_id

aliases: subnet_id

string

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: нет

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

diff_mode

Поддержка: нет

В режиме diff возвращает информацию о том, что изменилось (или, возможно, нуждается в изменении в check_mode)

Примечания

Примечание

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

list / elements=string

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

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

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

instances

complex

Список экземпляров 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).

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

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

status

string

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

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

Пример: "in_use"

volume_id

string

ID облачного диска.

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

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

cpu

integer

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

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

Пример: 4

creation_time

string

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

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

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

description

string

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

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

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

eip

complex

Атрибуция связанного с экземпляром EIP.

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

allocation_id

string

ID EIP.

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

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

internet_charge_type

string

Тип оплаты за интернет-трафик EIP.

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

Пример: "paybybandwidth"

ip_address

string

Адрес EIP.

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

Пример: "42.10.2.2"

expired_time

string

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

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

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

gpu

complex

Атрибуция графического процессора экземпляра.

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

amount

integer

Количество графических процессоров.

Returned: always

Sample: 0

spec

string

Спецификация графического процессора.

Returned: always

Sample: ""

host_name

string

Имя хоста экземпляра.

Returned: always

Sample: "iZ2zewaoZ"

id

string

Псевдоним instance_id.

Returned: always

Sample: "i-abc12345"

image_id

string

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

Returned: always

Sample: "m-0011223344"

inner_ip_address

string

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

Returned: always

Sample: "10.0.0.2"

instance_charge_type

string

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

Returned: always

Sample: "PostPaid"

instance_id

string

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

Returned: always

Sample: "i-abc12345"

instance_name

string

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

Returned: always

Sample: "my-ecs"

instance_type

string

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

Returned: always

Sample: "ecs.sn1ne.xlarge"

instance_type_family

string

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

Returned: always

Sample: "ecs.sn1ne"

internet_charge_type

string

Метод оплаты за сетевой трафик.

Returned: always

Sample: "PayByBandwidth"

internet_max_bandwidth_in

integer

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

Returned: always

Sample: 200

internet_max_bandwidth_out

integer

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

Returned: always

Sample: 20

io_optimized

boolean

Указывает, оптимизирован ли экземпляр для EBS I/O.

Returned: always

Sample: false

memory

integer

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

Returned: always

Sample: 8192

network_interfaces

complex

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

Returned: always

mac_address

string

MAC-адрес.

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

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

network_interface_id

string

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

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

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

primary_ip_address

string

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

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

Пример: "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

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

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

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

Авторы

  • He Guimin (@xiaozhu36)

Ссылки на сборники

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

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

Spec-Zone.ru

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