# Модуль decort_kvmvm ## Обзор модуля decort_kvmvm Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами: - **создать** (см. [примеры](#создать)) - **с указанием описания** (см. [параметр description](#description) и [примеры](#с-указанием-описания)) - **с указанием объёма загрузочного диска** (см. [параметр boot.disk_size](#boot_disk_size) и [примеры](#с-указанием-объёма-загрузочного-диска)) - **с указанием СХД** (см. [параметр sep_id](#sep_id) и [параметр pool](#pool) и [примеры](#с-указанием-схд)) - **с указанием Cloud-init user data** (см. [параметр ci_user_data](#ci_user_data) и [примеры](#с-указанием-cloud-init-user-data)) - **с указанием SSH-ключа** (см. [параметр ssh_key](#ssh_key) и [параметр ssh_key_user](#ssh_key_user) и [примеры](#с-указанием-ssh-ключа)) - **с указанием NUMA Affinity** (см. [параметр numa_affinity](#numa_affinity) и [примеры](#с-указанием-numa-affinity)) - **с указанием запуска на выделенных ядрах ЦП** (см. [параметр cpu_pin](#cpu_pin) и [примеры](#с-указанием-запуска-на-выделенных-ядрах-цп)) - **с использованием Huge Pages** (см. [параметр hp_backed](#hp_backed) и [примеры](#с-использованием-huge-pages)) - **с указанием custom_fields** (см. [параметр custom_fields](#custom_fields) и [примеры](#с-указанием-custom_fields)) - **с указанием affinity-метки** (см. [параметр affinity_label](#affinity_label) и [примеры](#с-указанием-affinity-метки)) - **с указанием affinity правил** (см. [параметр aff_rule](#aff_rule) и [примеры](#с-указанием-affinity-правил)) - **с указанием anti-affinity правил** (см. [параметр aaff_rule](#aaff_rule) и [примеры](#с-указанием-anti-affinity-правил)) - **с указанием тэгов** (см. [параметр tag](#tag) и [примеры](#с-указанием-тэгов)) - **с образом** (см. [параметр image_id](#image_id) и [примеры](#с-образом)) - **без образа** (см. [параметр image_id](#image_id) и [примеры](#без-образа)) - **с загрузочным диском** (см. [параметр boot.disk_size](#boot_disk_size) и [примеры](#с-загрузочным-диском)) - **без загрузочного диска** (см. [примеры](#без-загрузочного-диска)) - **с указанием режима загрузки** (см. [параметр boot.mode](#boot_mode) и [примеры](#с-указанием-режима-загрузки)) - **с указанием типа загрузчика ОС** (см. [параметр boot.loader_type](#boot_loader_type) и [примеры](#с-указанием-типа-загрузчика-ос)) - **с указанием именования сетевых интерфейсов** (см. [параметр network_interface_naming](#network_interface_naming) и [примеры](#с-указанием-именования-сетевых-интерфейсов)) - **с поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. [параметр hot_resize](#hot_resize) и [примеры](#с-поддержкой-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) - **с включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. [параметр auto_start](#auto_start) и [примеры](#с-включением-автоматического-запуска-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) - **с указанием чипсета** (см. [параметр chipset](#chipset) и [примеры](#с-указанием-чипсета)) - **с указанием предпочтительных ядер** (см. [параметр preferred_cpu_cores](#preferred_cpu_cores) и [примеры](#с-указанием-предпочтительных-ядер)) - **путём клонирования другой ВМ** (см. [параметр clone_from](#clone_from) и [примеры](#путём-клонирования-другой-вм)) - **с указанием зоны** (см. [параметр zone_id](#zone_id) и [примеры](#с-указанием-зоны)) - **с указанием версии операционной системы** (см. [параметр os_version](#os_version) и [примеры](#с-указанием-версии-операционной-системы)) - **получить основную информацию** (см. [возвращаемые значения](#основная-информация) и [примеры](#получение-основной-информации-о-виртуальной-машине)) - **получить ссылку на консоль** (см. [параметр get_console_url](#get_console_url) и [примеры](#получение-ссылки-на-консоль)) - **остановить/приостановить/запустить** (см. [параметр state](#state) и [примеры](#остановитьприостановитьзапустить)) - **запустить с загрузкой с образа CD-ROM** (см. [параметр boot.from_cdrom](#boot_from_cdrom) и [примеры](#запустить-с-загрузкой-с-образа-cd-rom)) - **подключить/отключить диски** (см. [параметр disks](#disks) и [примеры](#подключитьотключить-диски)) - **подключить/отключить сети** (см. [параметр networks](#networks) и [параметр network_order_changing](#network_order_changing) и [примеры](#подключитьотключить-сети)) - **включить/выключить сетевой интерфейс** (см. [параметр networks.enabled](#networks_enabled) и [примеры](#включитьвыключить-сетевой-интерфейс)) - **откатить ВМ к состоянию снимка** (см. [параметр rollback_to](#rollback_to) и [примеры](#откатить-вм-к-состоянию-снимка)) - **взаимодействовать c QEMU Guest Agent** (см. [параметр guest_agent](#guest_agent) и [примеры](#взаимодействовать-c-qemu-guest-agent)) - **получить статус копирования данных из удаляемого снимка на СХД Shared** (см. [параметр get_snapshot_merge_status](#get_snapshot_merge_status) и [примеры](#получение-статуса-копирования-данных-из-удаляемого-снимка-на-схд-shared)) - **взаимодействовать с CD-ROM** (см. [параметр cdrom](#cdrom) и [примеры](#взаимодействовать-с-cd-rom)) - **получить статус клонирования** (см. [параметр get_cloning_status](#get_cloning_status) и [примеры](#получение-статуса-клонирования)) - **отменить клонирование** (см. [параметр abort_cloning](#abort_cloning) и [примеры](#отменить-клонирование)) - **изменить** (см. [примеры](#изменить)) - **объём загрузочного диска в большую сторону** (см. [параметр boot.disk_size](#boot_disk_size) и [примеры](#объём-загрузочного-диска-в-большую-сторону)) - **количество ЦП** (см. [параметр cpu](#cpu) и [примеры](#количество-цп)) - **объём ОЗУ** (см. [параметр ram](#ram) и [примеры](#объём-озу)) - **тэги** (см. [параметр tag](#tag) и [примеры](#тэги)) - **affinity метку** (см. [параметр affinity_label](#affinity_label) и [примеры](#affinity-метку)) - **affinity правила** (см. [параметр aff_rule](#aff_rule) и [примеры](#affinity-правила)) - **anti-affinity правила** (см. [параметр aaff_rule](#aaff_rule) и [примеры](#anti-affinity-правила)) - **описание** (см. [параметр description](#description) и [примеры](#описание)) - **чипсет** (см. [параметр chipset](#chipset) и [примеры](#чипсет)) - **правило NUMA Affinity** (см. [параметр numa_affinity](#numa_affinity) и [примеры](#правило-numa-affinity)) - **запуск на выделенных ядрах ЦП** (см. [параметр cpu_pin](#cpu_pin) и [примеры](#запуск-на-выделенных-ядрах-цп)) - **использование Huge Pages** (см. [параметр hp_backed](#hp_backed) и [примеры](#использование-huge-pages)) - **имя** (см. [параметр name](#param_name) и [примеры](#имя)) - **XML виртуальной машины** (см. [параметр custom_fields](#custom_fields) и [примеры](#xml-виртуальной-машины)) - **автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена** (см. [параметр auto_start](#auto_start) и [примеры](#автоматический-запуск-вм-после-перезапуска-вычислительного-узла-за-которым-она-закреплена)) - **предпочтительные ядра** (см. [параметр preferred_cpu_cores](#preferred_cpu_cores) и [примеры](#предпочтительные-ядра)) - **загрузочный диск** (см. [параметр boot.disk_id](#boot_disk_id) и [примеры](#загрузочный-диск)) - **режим загрузки** (см. [параметр boot.mode](#boot_mode) и [примеры](#режим-загрузки)) - **тип загрузчика ОС** (см. [параметр boot_loader_type](#boot_loader_type) и [примеры](#тип-загрузчика-ос)) - **именование сетевых интерфейсов** (см. [параметр network_interface_naming](#network_interface_naming) и [примеры](#именование-сетевых-интерфейсов)) - **поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ** (см. [параметр hot_resize](#hot_resize) и [примеры](#поддержку-изменения-объема-озу-и-количества-цп-у-запущенной-вм)) - **MAC-адрес сетевого интерфейса** (см. [параметр networks.mac](#networks_mac) и [примеры](#mac-адрес-сетевого-интерфейса)) - **зону ВМ** (см. [параметр zone_id](#zone_id) и [примеры](#зону-вм)) - **порядок загрузки** (см. [параметр boot.order](#boot_order) и [примеры](#порядок-загрузки)) - **образ загрузочного диска** (см. [параметр image_id](#image_id) и [примеры](#с-изменением-образа)) - **группы безопасности сетевого интерфейса** (см. [параметр networks.security_group_ids](#networks_security_group_ids) и [параметр networks.security_group_mode](#networks_security_group_mode) и [примеры](#группы-безопасности-сетевого-интерфейса)) - **версию операционной системы** (см. [параметр os_version](#os_version) и [примеры](#версию-операционной-системы)) - **пересоздать загрузочный диск** (см. [параметр boot.disk_redeploy](#boot_disk_redeploy) и [примеры](#пересоздать-загрузочный-диск)) - **удалить (безвозвратно)** (см. [параметр state](#state) и [примеры](#безвозвратно)) ## Параметры модуля decort_kvmvm Ниже приведен список параметров для модуля **decort_kvmvm** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
Параметр Тип Описание
aaff_rule (list) Список словарей, описывающих anti-affinity правила.
Чтобы очистить anti-affinity правила, нужно указать пустой список [].
topology (str)
Значения:
node
compute
Назначение правила.
policy (str)
Значения:
RECOMMENDED
REQUIRED
Степень "необходимости" этого правила.
mode (str)
Значения:
EQ
NE
ANY
Режим сравнения.
EQ - должно соответствовать.
NE - не должно соответствовать.
ANY - любое.
key (str) Ключ, который учитывается при анализе данного правила.
value (str) Значение ключа, учитываемого при анализе данного правила (зависит от ключа mode).
account_id (int) Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией account_id и rg_name.
Если задан account_id, то account_name игнорируется.
account_name (str) Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией account_name и rg_name.
Если задан account_id, то account_name игнорируется.
aff_rule (list) Список словарей, описывающих affinity правила.
Чтобы очистить affinity правила, нужно указать пустой список [].
topology (str)
Значения:
node
compute
Назначение правила.
policy (str)
Значения:
RECOMMENDED
REQUIRED
Степень "необходимости" этого правила.
mode (str)
Значения:
EQ
NE
ANY
Режим сравнения.
EQ - должно соответствовать.
NE - не должно соответствовать.
ANY - любое.
key (str) Ключ, который учитывается при анализе данного правила.
value (str) Значение ключа, учитываемого при анализе данного правила (зависит от ключа mode).
affinity_label (str) Метка affinity.
Чтобы очистить метку affinity, нужно указать пустую строку "".
auto_start (bool) Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
Если параметр не задан при создании ВМ, то значение будет выбрано платформой.
abort_cloning (bool) Отменить клонирование ВМ. Может быть задан только для существующей ВМ.
boot (dict) Параметры загрузки.
disk_id (int) Идентификатор диска, который будет установлен как загрузочный.
disk_size (int) Объём загрузочного диска виртуальной машины в ГБ. Если параметр не задан, размер будет равен размеру образа. Если не заданы этот параметр и параметр image_id, то виртуальная машина будет создана без загрузочного диска.
mode (str)
Значения:
bios
uefi
Режим загрузки.
Значение по умолчанию при создании: bios.
loader_type (str)
Значения:
linux
windows
unknown
Тип загрузчика операционной системы.
Значение по умолчанию при создании: unknown.
from_cdrom (int) Идентификатор образа CD-ROM, с которого должна загрузиться ВМ при запуске.
order (list)
Значения:
cdrom
hd
network
Порядок загрузки.
disk_redeploy (bool) Пересоздание загрузочного диска.
cdrom (dict) Словарь параметров для взаимодействия с CD-ROM.
image_id (int) Идентификатор образа CD-ROM.
mode (str)
Значения:
insert
eject
Default: insert
Режим работы.
chipset (str)
Значения:
Q35
i440fx
Эмулируемый чипсет.
Значение по умолчанию при создании: i440fx.
ci_user_data (dict) Конфигурация для cloud-init.
clone_from (dict) Словарь параметров для создания ВМ путём клонирования другой ВМ.
Для создания клона также должен быть указан параметр name для указания имени клона.
id (int) Идентификатор клонируемой ВМ (обязательный).
force (bool)
Default: false
Игнорировать, что ВМ запущена.
sep_pool_name (str) Название пула СХД.
sep_id (int) Идентификатор СХД.
snapshot (dict) Параметры клонируемого снимка ВМ.
name (str) Название снимка.
timestamp (int) Unix-время.
datetime (str) Дата и время в формате ггггммддччммсс, альтернатива параметру timestamp. Допустимо использовать любой разделитель между группами цифр для повышения читаемости, например, гггг-мм-дд чч:мм:сс.
storage_policy_id (int) Идентификатор политики хранения. Обязательный параметр.
cpu (int) Количество виртуальных процессоров, выделяемых виртуальной машине.
cpu_pin (bool) Запуск виртуальной машины на выделенных ядрах ЦП.
Значение по умолчанию при создании: false.
custom_fields (dict) Словарь, управляющий XML виртуальной машины.
disable (bool) Отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: true.
fields (dict) Поля для управления XML виртуальной машины.
description (str) Опциональное описание виртуальной машины.
disks (dict) Словарь, описывающий диски ВМ.
mode (str)
Значения:
update
detach
delete
match
Default: update
Режим работы параметра.
update - указанные диски подключены.
detach - указанные диски отключены.
delete - указанные диски отключены и удалены; удаляются только отключаемые диски.
match - подключены только указанные диски.
objects (list) Список словарей, описывающих диски.
id (int) Идентификатор диска. Обязательный параметр.
pci_slot_num_hex (str) Номер слота PCI.
bus_num_hex (str) Номер шины.
get_console_url (bool)
Default: false
Получить ссылку на консоль ВМ.
get_cloning_status (bool) Получить статус клонирования ВМ.
get_snapshot_merge_status (bool) Получить статус копирования данных из удаляемого снимка на СХД Shared.
guest_agent (dict) Параметры для взаимодействия с QEMU Guest Agent.
enabled (bool) Включить/выключить QEMU Guest Agent.
exec (dict) Команда, которую необходимо выполнить.
cmd (str) Название. Обязательный параметр.
args (dict)
Default: {}
Аргументы.
update_available_commands (bool) Обновить список доступных команд.
hot_resize (bool) Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
Значение по умолчанию при создании: false.
hp_backed (bool) Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
Значение по умолчанию при создании: false.
id (int) Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации name, rg_name и account_name).
Если при вызове модуля decort_kvmvm существующая ВМ идентифицируется по id, то параметры account_id, account_name, rg_id и rg_name игнорируются.
image_id (int) Уникальный цифровой идентификатор образа.
Если этот параметр не задан при создании ВМ, то ВМ будет создана без образа.
Изменение образа у существующей ВМ возможно только при пересоздании загрузочного диска (см. disk_redeploy).
name (str) Имя ВМ. Чтобы модуль decort_kvmvm мог управлять сервером по его названию, также необходимо задать комбинацию account_name и rg_name или rg_id.
Если для существующей ВМ указаны и name, и id, то параметр name используется для переименования.
network_interface_naming (str)
Значения:
ens
eth
Шаблон именования сетевых интерфейсов в ОС Linux.
Значение по умолчанию при создании: ens.
network_order_changing (bool)
Default: false
Соблюдение очерёдности сетей при их изменении.
Если true, то сравнение списка уже подключённых к ВМ сетей со списком из параметра networks будет производится с учётом очерёдности сетей и, при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ, а затем подключение сетей в соответствии с параметром networks.
Если false, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра networks и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей.
networks (list) Список словарей, описывающих сети ВМ.

ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа, кроме EMPTY.

ВМ не может одновременно быть подключена к сети SDN и к сети другого типа, кроме EMPTY, VFNIC.

Чтобы отключить все сети, нужно указать пустой список [].
enabled (bool) Включен или выключен сетевой интерфейс. Изменение доступно для сетей VINS, EXTNET, DPDK, SDN, TRUNK.
Значение по умолчанию при подключении новой сети: true.
type (str)
Значения:
VINS
EXTNET
VFNIC
DPDK
SDN
TRUNK
EMPTY
Тип сети. Обязательный параметр.
id (int | str) Идентификатор внутренней/внешней/DPDK сети, пула вирт. функций или логического порта SDN.
ip_addr (str) IP-адрес, используемый для подключения к данной сети.
Применимо только для VINS и EXTNET.
mac (str) MAC-адрес сетевого интерфейса.
Не применим для сети типа EMPTY.
mtu (int) MTU интерфейса.
Применимо только для EXTNET и DPDK.
security_group_ids (list) Идентификаторы групп безопасности.
security_group_mode (bool) Включить/выключить группы безопасности.
Значение по умолчанию при подключении новой сети: false.
numa_affinity (str)
Значения:
strict
loose
none
Правило применения NUMA affinity к виртуальной машине.
strict - строго с NUMA affinity.
loose - использовать NUMA affinity, если возможно.
none - отменить применение NUMA affinity.
Значение по умолчанию при создании: none.
os_version (str) Версия операционной системы. Если не задано при создании ВМ с образом или при пересоздании загрузочного диска, то наследуется от названия образа.
pool (str) Пул СХД, заданной параметром sep_id. Если пул не задан, то он будет выбран платформой.
preferred_cpu_cores (list) Список номеров предпочтительных выделенных ядер ЦП (см. параметр cpu_pin).
Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список [].
ram (int) Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти.
rg_id (int) Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ.
Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации account_name и rg_name).
rg_name (str) Имя уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ.
Данный параметр является одним из методов идентификации существующей РГ, когда задается пара account_name и rg_name (альтернативой является задание rg_id).
Если заданы и rg_id, и rg_name, то параметр rg_name игнорируется.
rollback_to (str) Имя снимка, к состоянию которого необходимо совершить откат ВМ.
sep_id (int) Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
ssh_key (str) Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром ssh_key_user.
Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях.
ssh_key_user (str) Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром ssh_key.
Данный параметр является обязательным, если задан ssh_key. Используется только при создании и игнорируется при других операциях.
state (str)
Значения:
present
absent
started
stopped
paused
Целевое состояние ВМ.
present - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
absent - виртуальная машина безвозвратно удалена.
started - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
stopped - виртуальная машина остановлена. Если запущена, то будет остановлена.
paused - виртуальная машина приостановлена.
Значение по умолчанию при создании: present
storage_policy_id (int) Идентификатор политики хранения. Обязателен при создании виртуальной машины с диском/дисками и пересоздании загрузочного диска. Не поддерживается изменение в существующей виртуальной машине.
tag (dict) Словарь, пары ключ-значение которого, описывают тэги для ВМ.
Чтобы очистить теги, нужно указать пустой словарь {}.
zone_id (int) Идентификатор зоны ВМ.
## Возвращаемые значения модуля decort_kvmvm Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами: ### Основная информация
Ключ Тип Описание
account_id int Идентификатор аккаунта.
affinity_label str Метка affinity.
affinity_rules list Список словарей, описывающих affinity правила.
anti_affinity_rules list Список словарей, описывающих anti-affinity правила.
arch str Архитектура ВМ.
auto_start bool Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
boot_mode str Режим загрузки.
cd_image_id int Идентификатор диска CD-ROM.
clones list Список идентификаторов клонов ВМ.
clone_reference int Идентификатор ВМ, клоном которой является данная ВМ.
chipset str Эмулируемый чипсет.
cpu int Количество виртуальных процессоров.
cpu_pin bool Запуск виртуальной машины на выделенных ядрах ЦП.
custom_fields dict | null Словарь, управляющий XML виртуальной машины.
Если null, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено.
disks list Список словарей, описывающих диски, подключенные к ВМ.
disk_size int Размер загрузочного диска в ГБ.
guest_agent dict Информация о QEMU Guest Agent ВМ.
enabled bool Включен/выключен.
enabled_agent_features list Список доступных команд.
exec_result any Результат выполнения команды.
guid str Идентификатор.
last_update int Временная метка последнего обновления доступных команд.
user str Пользователь, совершивший последнее обновление доступных команд.
hot_resize bool Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
hp_backed bool Использовать Huge Pages для выделения оперативной памяти виртуальной машины.
id int Идентификатор ВМ.
image_id int | null Идентификатор образа.
interfaces list Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI.
boot_loader_type str Тип загрузчика операционной системы.
boot_loader_metaiso dict | null Информация об образе загрузчика ВМ.
device_name str Имя устройства
path str Путь к файлу образа.
name str Имя ВМ.
network_interface_naming str Шаблон именования сетевых интерфейсов в ОС Linux.
numa_affinity str Правило применения NUMA affinity к виртуальной машине.
os_version str Версия операционной системы.
password str Пароль пользователя ОС по умолчанию.
pinned_to_stack bool ВМ привязана к вычислительному узлу.
preferred_cpu_cores list Список номеров предпочтительных выделенных ядер ЦП.
private_ips list Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям.
public_ips list Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям.
ram int Объём ОЗУ ВМ в МБ.
rg_id int Идентификатор ресурсной группы, которой принадлежит данная ВМ.
snapshots list Список словарей, описывающих снимки ВМ.
state str Состояние ВМ.
tags dict Словарь, пары ключ-значение которого, описывают тэги ВМ.
tech_status str Технический статус ВМ.
username str Имя пользователя ОС по умолчанию.
vnc_password str Пароль, используемый для подключения к ВМ через VNC.
zone_id int Идентификатор зоны ВМ.
### Ссылка на консоль
Ключ Тип Описание
console_url str Ссылка на консоль ВМ.
### Статус копирования данных из удаляемого снимка на СХД Shared
Ключ Тип Описание
snapshot_merge_status dict Словарь, где ключ - идентификатор диска, а значение - статус.
### Статус клонирования
Ключ Тип Описание
cloning_status dict Словарь, описывающий статус клонирования.
disk_id int Идентификатор клонируемого диска
status dict Словарь с подробным описанием статуса.
Может быть пустым словарем {}.
type int Тип клонирования.
bandwidth int Скорость клонирования данных.
cur int Объём переданных данных.
end int Общий объём передаваемых данных.
ready bool Готовность клонирования.
progress_percent int Прогресс клонирования в процентах.
## Примеры использования ### Создать #### С указанием описания ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" description: vm description state: present ``` #### С указанием объёма загрузочного диска ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" boot: disk_size: 10 state: present ``` #### С указанием СХД ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" sep_id: "{{ sep_id }}" pool: "{{ sep_pool_name }}" state: present ``` #### С указанием Cloud-init user data ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" ci_user_data: packages: - apache2 write_files: - content: |
Hello World!
owner: user:user path: /var/www/html/index.html hostname: test-apache ssh_keys: - rsa_public: ssh-rsa AAAAOasDmLxnD= user@pc state: present ``` #### С указанием SSH-ключа ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... ssh_key_user: user state: present ``` #### С указанием NUMA Affinity ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" numa_affinity: strict state: present ``` #### С указанием запуска на выделенных ядрах ЦП ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" cpu_pin: true state: present ``` #### С использованием Huge Pages ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" hp_backed: true state: present ``` #### С указанием custom_fields ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" custom_fields: fields: title: Title cpu: mode: custom vendor: Intel cache: mode: disable topology: sockets: 1 cores: 14 threads: 1 match: minimum check: partial state: present ``` #### С указанием affinity-метки ``` - name: Example hosts: localhost tasks: - name: Create VM with affinity-label decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" affinity_label: label state: present ``` #### С указанием affinity правил ``` - name: Example hosts: localhost tasks: - name: Create VM with affinity rules decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" aff_rule: - topology: compute policy: RECOMMENDED mode: EQ key: key value: value state: present ``` #### С указанием anti-affinity правил ``` - name: Example hosts: localhost tasks: - name: Create VM with anti-affinity rules decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" aaff_rule: - topology: node policy: REQUIRED mode: ANY key: key value: value state: present ``` #### С указанием тэгов ``` - name: Example hosts: localhost tasks: - name: Create VM with tags decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" tag: tag1_key: tag1_value tag2_key: tag2_value state: present ``` #### С образом ``` - name: Example hosts: localhost tasks: - name: Create VM with image decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 image_id: "{{ image_id }}" storage_policy_id: "{{ storage_policy_id }}" state: present ``` #### Без образа ##### С загрузочным диском ``` - name: Example hosts: localhost tasks: - name: Create VM without image and with boot disk decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" boot: disk_size: 10 state: present ``` ##### Без загрузочного диска ``` - name: Example hosts: localhost tasks: - name: Create VM without image and without boot disk decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" state: present ``` ##### С указанием режима загрузки ``` - name: Example hosts: localhost tasks: - name: Create VM without image and with boot mode decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" boot: mode: bios ``` ##### С указанием типа загрузчика ОС ``` - name: Example hosts: localhost tasks: - name: Create VM without image and with loader type decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" boot: loader_type: linux ``` ##### С указанием именования сетевых интерфейсов ``` - name: Example hosts: localhost tasks: - name: Create VM without image and with network interface naming decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" network_interface_naming: ens ``` ##### С поддержкой изменения объема ОЗУ и количества ЦП у запущенной ВМ ``` - name: Example hosts: localhost tasks: - name: Create VM without image and with hot resize decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" hot_resize: true ``` #### С включением автоматического запуска ВМ после перезапуска вычислительного узла, за которым она закреплена ``` - name: Example hosts: localhost tasks: - name: Create VM decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" auto_start: true state: present ``` #### С указанием чипсета ``` - name: Example hosts: localhost tasks: - name: Create VM decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" chipset: Q35 state: present ``` ### С указанием предпочтительных ядер ``` - name: Example hosts: localhost tasks: - name: Create VM with preferred CPU cores decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" cpu_pin: true preferred_cpu_cores: - 0 - 1 state: present ``` ### Путём клонирования другой ВМ #### Без указания снимка ``` - name: Example hosts: localhost tasks: - name: Create VM clone decort_kvmvm: # Параметры для авторизации упущены name: vm_clone clone_from: id: "{{ vm_id }}" force: true storage_policy_id: "{{ storage_policy_id }}" ``` #### С указанием имени снимка ``` - name: Example hosts: localhost tasks: - name: Create VM clone decort_kvmvm: # Параметры для авторизации упущены name: vm_clone clone_from: id: "{{ vm_id }}" snapshot: name: snapshot_01 force: true storage_policy_id: "{{ storage_policy_id }}" ``` #### С указанием временной метки снимка ``` - name: Example hosts: localhost tasks: - name: Create VM clone decort_kvmvm: # Параметры для авторизации упущены name: vm_clone clone_from: id: "{{ vm_id }}" snapshot: timestamp: 1739792809 force: true storage_policy_id: "{{ storage_policy_id }}" ``` #### С указанием даты создания снимка ``` - name: Example hosts: localhost tasks: - name: Create VM clone decort_kvmvm: # Параметры для авторизации упущены name: vm_clone clone_from: id: "{{ vm_id }}" snapshot: datetime: 2024-02-17 14:50:22 force: true storage_policy_id: "{{ storage_policy_id }}" ``` #### С указанием СХД ``` - name: Example hosts: localhost tasks: - name: Create VM clone decort_kvmvm: # Параметры для авторизации упущены name: vm_clone clone_from: id: "{{ vm_id }}" force: true sep_pool_name: "{{ sep_pool_name }}" sep_id: "{{ sep_id }}" storage_policy_id: "{{ storage_policy_id }}" ``` ### С указанием зоны ``` - name: Example hosts: localhost tasks: - name: Create VM with zone id decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" zone_id: 2 state: present ``` ### С указанием версии операционной системы ``` - name: Example hosts: localhost tasks: - name: Create VM with OS version decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" cpu: 1 ram: 512 storage_policy_id: "{{ storage_policy_id }}" os_version: "{{ os_version }}" state: present ``` ### Получение основной информации о виртуальной машине #### По идентификатору ``` - name: Example hosts: localhost tasks: - name: Get basic VM info by ID decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" ``` #### По имени ``` - name: Example hosts: localhost tasks: - name: Get basic VM info by name decort_kvmvm: # Параметры для авторизации упущены rg_id: "{{ rg_id }}" name: "{{ vm_name }}" ``` ### Получение ссылки на консоль ``` - name: Example hosts: localhost tasks: - name: Get VM console URL decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" get_console_url: true ``` ### Остановить/приостановить/запустить #### Остановить ``` - name: Example hosts: localhost tasks: - name: Stop VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" state: stopped ``` #### Запустить ``` - name: Example hosts: localhost tasks: - name: Start VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" state: started ``` #### Приостановить ``` - name: Example hosts: localhost tasks: - name: Pause VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" state: paused ``` #### Запустить с загрузкой с образа CD-ROM ``` - name: Example hosts: localhost tasks: - name: Boot from CD-ROM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: from_cdrom: 10 state: started ``` ### Подключить/отключить диски #### Подключить ``` - name: Example hosts: localhost tasks: - name: Connect data disks to VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" disks: mode: update objects: - id: "{{ datadisk1_id }}" pci_slot_num_hex: "{{ pci_slot_num_hex }}" bus_num_hex: "{{ bus_num_hex }}" - id: "{{ datadisk2_id }}" ``` #### Отключить ``` - name: Example hosts: localhost tasks: - name: Disconnect data disks from VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" disks: mode: match objects: [] ``` ### Подключить/отключить сети #### Подключить VINS/EXTNET/VFNIC-сети ``` - name: Example hosts: localhost tasks: - name: Connect networks to VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: VINS id: "{{ vins_id }}" ip_addr: 192.168.4.0 mac: "00:11:22:33:44:55" - type: EMPTY - type: EXTNET id: "{{ extnet_id }}" mtu: 1500 ip_addr: 35.21.230.0 - type: VFNIC id: "{{ vfpool_id }}" - type: TRUNK id: "{{ trunk_id }}" state: stopped ``` #### Подключить VINS/EXTNET/VFNIC-сети с соблюдением очередности ``` - name: Example hosts: localhost tasks: - name: Connect networks to VM with network order changing decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: VINS id: "{{ vins_id }}" ip_addr: 192.168.4.0 mac: "00:11:22:33:44:55" - type: EMPTY - type: EXTNET id: "{{ extnet_id }}" mtu: 1500 ip_addr: 35.21.230.0 - type: VFNIC id: "{{ vfpool_id }}" - type: TRUNK id: "{{ trunk_id }}" network_order_changing: true state: stopped ``` #### Подключить DPDK сети ``` - name: Example hosts: localhost tasks: - name: Connect DPDK networks to VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" hp_backed: true networks: - type: DPDK id: "{{ dpdk1_id }}" - type: DPDK id: "{{ dpdk2_id }}" mtu: 1500 state: stopped ``` #### Подключить сеть с выключенным интерфейсом ``` - name: Example hosts: localhost tasks: - name: Connect network with disabled interface decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: "{{ network_type }}" id: "{{ network_id }}" enabled: false state: stopped ``` #### Подключить SDN сеть ``` - name: Example hosts: localhost tasks: - name: Connect SDN network to VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: SDN mac: "11:22:33:44:55:66" id: "{{ sdn_logical_port_id }}" state: stopped ``` #### Отключить ``` - name: Example hosts: localhost tasks: - name: Disconnect networks from VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: [] state: stopped ``` ### Включить/выключить сетевой интерфейс #### Включить ``` - name: Example hosts: localhost tasks: - name: Enable VM interface decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: "{{ network_type }}" id: "{{ network_id }}" enabled: true ``` #### Выключить ``` - name: Example hosts: localhost tasks: - name: Disable VM interface decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: "{{ network_type }}" id: "{{ network_id }}" enabled: false ``` ### Откатить ВМ к состоянию снимка ``` - name: Example hosts: localhost tasks: - name: Rollback VM to snapshot decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" rollback_to: snapshot_01 state: stopped ``` ### Взаимодействовать c QEMU Guest Agent #### Включить ``` - name: Example hosts: localhost tasks: - name: Enable guest agent decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" guest_agent: enabled: true ``` #### Выключить ``` - name: Example hosts: localhost tasks: - name: Disable guest agent decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" guest_agent: enabled: false ``` #### Обновить список доступных команд ``` - name: Example hosts: localhost tasks: - name: Update available guest agent commands decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" guest_agent: update_available_commands: true ``` #### Выполнить команду ``` - name: Example hosts: localhost tasks: - name: Execute guest agent command decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" guest_agent: exec: cmd: guest-set-user-password args: username: user password: newPassword ``` ### Получение статуса копирования данных из удаляемого снимка на СХД Shared ``` - name: Example hosts: localhost tasks: - name: Get snapshot merge status decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" get_snapshot_merge_status: true ``` ### Получение статуса клонирования ``` - name: Example hosts: localhost tasks: - name: Get cloning status decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" get_cloning_status: true ``` ### Отменить клонирование ``` - name: Example hosts: localhost tasks: - name: Abort cloning decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" abort_cloning: true ``` ### Взаимодействовать с CD-ROM #### Вставить диск ``` - name: Example hosts: localhost tasks: - name: Insert disk decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" cdrom: mode: insert image_id: 19 ``` #### Извлечь диск ``` - name: Example hosts: localhost tasks: - name: Eject disk decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" cdrom: mode: eject ``` ### Изменить #### Объём загрузочного диска в большую сторону ``` - name: Example hosts: localhost tasks: - name: Increase boot disk size decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: disk_size: 15 state: stopped ``` #### Количество ЦП ``` - name: Example hosts: localhost tasks: - name: Change CPU amount decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" cpu: 1 state: stopped ``` #### Объём ОЗУ ``` - name: Example hosts: localhost tasks: - name: Change RAM size decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" ram: 512 state: stopped ``` #### Тэги ``` - name: Example hosts: localhost tasks: - name: Change tags decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" tag: tag1_key: tag1_value tag2_key: tag2_value ``` #### Affinity метку ``` - name: Example hosts: localhost tasks: - name: Change affinity label decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" affinity_label: Affinity label 1 ``` #### Affinity правила ``` - name: Example hosts: localhost tasks: - name: Change affinity rules decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" aff_rule: - topology: compute policy: REQUIRED mode: EQ key: app value: main - topology: node policy: RECOMMENDED mode: NE key: state value: started ``` #### Anti-affinity правила ``` - name: Example hosts: localhost tasks: - name: Change anti-affinity rules decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" aaff_rule: - topology: compute policy: REQUIRED mode: ANY key: app value: main ``` #### Описание ``` - name: Example hosts: localhost tasks: - name: Change description decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" description: vm description ``` #### Чипсет ``` - name: Example hosts: localhost tasks: - name: Change chipset decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" chipset: i440fx state: stopped ``` #### Правило NUMA Affinity ``` - name: Example hosts: localhost tasks: - name: Change NUMA affinity rule decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" numa_affinity: loose state: stopped ``` #### Запуск на выделенных ядрах ЦП ``` - name: Example hosts: localhost tasks: - name: Change CPU Pinning usage decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" cpu_pin: true state: stopped ``` #### Использование Huge Pages ``` - name: Example hosts: localhost tasks: - name: Change Huge Pages usage decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" hp_backed: true state: stopped ``` #### Имя ``` - name: Example hosts: localhost tasks: - name: Rename VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" name: "{{ new_vm_name }}" ``` #### XML виртуальной машины ##### Изменение ``` - name: Example hosts: localhost tasks: - name: Change XML management decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" custom_fields: fields: cpu: mode: custom vendor: Intel cache: mode: enable os: type: machine: pc-i440fx-artful ``` ##### Отключение управления ВМ через XML ``` - name: Example hosts: localhost tasks: - name: Disable XML management decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" custom_fields: disable: true ``` #### Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена ##### Включить ``` - name: Example hosts: localhost tasks: - name: Enable auto starting pinned VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" auto_start: true ``` ##### Выключить ``` - name: Example hosts: localhost tasks: - name: Disable auto starting of pinned VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" auto_start: false ``` #### Предпочтительные ядра ``` - name: Example hosts: localhost tasks: - name: Change preferred CPU cores decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" cpu_pin: true preferred_cpu_cores: - 0 - 1 - 2 state: stopped ``` #### Загрузочный диск ``` - name: Example hosts: localhost tasks: - name: Make the disk bootable decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: disk_id: "{{ vm_disk1_id }}" ``` #### Режим загрузки ``` - name: Example hosts: localhost tasks: - name: Change boot mode decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: mode: uefi ``` #### Тип загрузчика ОС ``` - name: Example hosts: localhost tasks: - name: Change loader type decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: loader_type: windows ``` #### Именование сетевых интерфейсов ``` - name: Example hosts: localhost tasks: - name: Change network interface naming decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" network_interface_naming: eth ``` #### Поддержку изменения объема ОЗУ и количества ЦП у запущенной ВМ ``` - name: Example hosts: localhost tasks: - name: Change hot resize support decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" hot_resize: true ``` #### MAC-адрес сетевого интерфейса ``` - name: Example hosts: localhost tasks: - name: Change network interface MAC address decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: VINS id: "{{ vins_id }}" mac: "11:22:33:44:55:66" ``` #### Зону ВМ ``` - name: Example hosts: localhost tasks: - name: Change VM zone decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" zone_id: 2 ``` #### Порядок загрузки ``` - name: Example hosts: localhost tasks: - name: Change boot order decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" boot: order: - hd - network - cdrom ``` #### Группы безопасности сетевого интерфейса ``` - name: Example hosts: localhost tasks: - name: Change interface's security groups decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" networks: - type: VINS id: "{{ vins_id }}" security_group_mode: true security_group_ids: - "{{ security_group1_id }}" - "{{ security_group2_id }}" ``` #### Версию операционной системы ``` - name: Example hosts: localhost tasks: - name: Change VM OS version decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" os_version: "{{ os_version }}" ``` ### Пересоздать загрузочный диск #### Без изменения образа ``` - name: Example hosts: localhost tasks: - name: Redeploy boot disk decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" storage_policy_id: "{{ storage_policy_id }}" boot: disk_redeploy: true ``` #### С изменением образа ``` - name: Example hosts: localhost tasks: - name: Redeploy boot disk with image changing decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" storage_policy_id: "{{ storage_policy_id }}" boot: disk_redeploy: true image_id: "{{ image_id }}" ``` ### Удалить #### Безвозвратно ``` - name: Example hosts: localhost tasks: - name: Delete VM decort_kvmvm: # Параметры для авторизации упущены id: "{{ vm_id }}" state: absent ```