You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3553 lines
95 KiB

4 weeks ago
# Модуль 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#общие-параметры-модулей-для-авторизации)):
<table>
<tr>
<th colspan="6">Параметр</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
<a name="aaff_rule">
aaff_rule
</a>
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих anti-affinity правила.
<br>Чтобы очистить anti-affinity правила, нужно указать пустой список <code>[]</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
topology
</td>
<td>
(str)
<br>Значения:
<br><code>node</code>
<br><code>compute</code>
</td>
<td>
Назначение правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
policy
</td>
<td>
(str)
<br>Значения:
<br><code>RECOMMENDED</code>
<br><code>REQUIRED</code>
</td>
<td>
Степень "необходимости" этого правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mode
</td>
<td>
(str)
<br>Значения:
<br><code>EQ</code>
<br><code>NE</code>
<br><code>ANY</code>
</td>
<td>
Режим сравнения.
<br><code>EQ</code> - должно соответствовать.
<br><code>NE</code> - не должно соответствовать.
<br><code>ANY</code> - любое.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
key
</td>
<td>
(str)
</td>
<td>
Ключ, который учитывается при анализе данного правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
value
</td>
<td>
(str)
</td>
<td>
Значение ключа, учитываемого при анализе данного правила (зависит от ключа <code>mode</code>).
</td>
</tr>
<tr>
<td colspan="6">
<a name="account_id">
account_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией <a href=#account_id>account_id</a> и <a href=#rg_name>rg_name</a>.
<br>Если задан <a href=#account_id>account_id</a>, то <a href=#account_name>account_name</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="account_name">
account_name
</a>
</td>
<td>
(str)
</td>
<td>
Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией <a href=#account_name>account_name</a> и <a href=#rg_name>rg_name</a>.
<br>Если задан <a href=#account_id>account_id</a>, то <a href=#account_name>account_name</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="aff_rule">
aff_rule
</a>
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих affinity правила.
<br>Чтобы очистить affinity правила, нужно указать пустой список <code>[]</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
topology
</td>
<td>
(str)
<br>Значения:
<br><code>node</code>
<br><code>compute</code>
</td>
<td>
Назначение правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
policy
</td>
<td>
(str)
<br>Значения:
<br><code>RECOMMENDED</code>
<br><code>REQUIRED</code>
</td>
<td>
Степень "необходимости" этого правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mode
</td>
<td>
(str)
<br>Значения:
<br><code>EQ</code>
<br><code>NE</code>
<br><code>ANY</code>
</td>
<td>
Режим сравнения.
<br><code>EQ</code> - должно соответствовать.
<br><code>NE</code> - не должно соответствовать.
<br><code>ANY</code> - любое.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
key
</td>
<td>
(str)
</td>
<td>
Ключ, который учитывается при анализе данного правила.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
value
</td>
<td>
(str)
</td>
<td>
Значение ключа, учитываемого при анализе данного правила (зависит от ключа <code>mode</code>).
</td>
</tr>
<tr>
<td colspan="6">
<a name="affinity_label">
affinity_label
</a>
</td>
<td>
(str)
</td>
<td>
Метка affinity.
<br>Чтобы очистить метку affinity, нужно указать пустую строку <code>""</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="auto_start">
auto_start
</a>
</td>
<td>
(bool)
</td>
<td>
Включить/выключить автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
<br>Если параметр не задан при создании ВМ, то значение будет выбрано платформой.
</td>
</tr>
<tr>
<td colspan="6">
<a name="abort_cloning">
abort_cloning
</a>
</td>
<td>
(bool)
</td>
<td>
Отменить клонирование ВМ. Может быть задан только для существующей ВМ.
</td>
</tr>
<tr>
<td colspan="6">
<a name="boot">
boot
</a>
</td>
<td>
(dict)
</td>
<td>
Параметры загрузки.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_disk_id">
disk_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор диска, который будет установлен как загрузочный.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_disk_size">
disk_size
</a>
</td>
<td>
(int)
</td>
<td>
Объём загрузочного диска виртуальной машины в ГБ. Если параметр не задан, размер будет равен размеру образа. Если не заданы этот параметр и параметр <a href=#image_id>image_id</a>, то виртуальная машина будет создана без загрузочного диска.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_mode">
mode
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>bios</code>
<br><code>uefi</code>
</td>
<td>
Режим загрузки.
<br>Значение по умолчанию при создании: <code>bios</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_loader_type">
loader_type
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>linux</code>
<br><code>windows</code>
<br><code>unknown</code>
</td>
<td>
Тип загрузчика операционной системы.
<br>Значение по умолчанию при создании: <code>unknown</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_from_cdrom">
from_cdrom
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор образа CD-ROM, с которого должна загрузиться ВМ при запуске.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_order">
order
</a>
</td>
<td>
(list)
<br>Значения:
<br><code>cdrom</code>
<br><code>hd</code>
<br><code>network</code>
</td>
<td>
Порядок загрузки.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="boot_disk_redeploy">
disk_redeploy
</a>
</td>
<td>
(bool)
</td>
<td>
Пересоздание загрузочного диска.
</td>
</tr>
<tr>
<td colspan="6">
<a name="cdrom">
cdrom
</a>
</td>
<td>
(dict)
</td>
<td>
Словарь параметров для взаимодействия с CD-ROM.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
image_id
</td>
<td>
(int)
</td>
<td>
Идентификатор образа CD-ROM.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mode
</td>
<td>
(str)
<br>Значения:
<br><code>insert</code>
<br><code>eject</code>
<br>Default: <code>insert</code>
</td>
<td>
Режим работы.
</td>
</tr>
<tr>
<td colspan="6">
<a name="chipset">
chipset
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>Q35</code>
<br><code>i440fx</code>
</td>
<td>
Эмулируемый чипсет.
<br>Значение по умолчанию при создании: <code>i440fx</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="ci_user_data">
ci_user_data
</a>
</td>
<td>
(dict)
</td>
<td>
Конфигурация для cloud-init.
</td>
</tr>
<tr>
<td colspan="6">
<a name="clone_from">
clone_from
</a>
</td>
<td>
(dict)
</td>
<td>
Словарь параметров для создания ВМ путём клонирования другой ВМ.
<br>Для создания клона также должен быть указан параметр <a href=#param_name>name</a> для указания имени клона.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
id
</td>
<td>
(int)
</td>
<td>
Идентификатор клонируемой ВМ (обязательный).
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
force
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Игнорировать, что ВМ запущена.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
sep_pool_name
</td>
<td>
(str)
</td>
<td>
Название пула СХД.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
sep_id
</td>
<td>
(int)
</td>
<td>
Идентификатор СХД.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
snapshot
</td>
<td>
(dict)
</td>
<td>
Параметры клонируемого снимка ВМ.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
name
</td>
<td>
(str)
</td>
<td>
Название снимка.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
<a name="clone_from_timestamp">
timestamp
</a>
</td>
<td>
(int)
</td>
<td>
Unix-время.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
datetime
</td>
<td>
(str)
</td>
<td>
Дата и время в формате <code>ггггммддччммсс</code>, альтернатива параметру <a href=#clone_from_timestamp>timestamp</a>. Допустимо использовать любой разделитель между группами цифр для повышения читаемости, например, <code>гггг-мм-дд чч:мм:сс</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
storage_policy_id
</td>
<td>
(int)
</td>
<td>
Идентификатор политики хранения. Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="6">
<a name="cpu">
cpu
</a>
</td>
<td>
(int)
</td>
<td>
Количество виртуальных процессоров, выделяемых виртуальной машине.
</td>
</tr>
<tr>
<td colspan="6">
<a name="cpu_pin">
cpu_pin
</a>
</td>
<td>
(bool)
</td>
<td>
Запуск виртуальной машины на выделенных ядрах ЦП.
<br>Значение по умолчанию при создании: <code>false</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="custom_fields">
custom_fields
</a>
</td>
<td>
(dict)
</td>
<td>
Словарь, управляющий XML виртуальной машины.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
disable
</td>
<td>
(bool)
</td>
<td>
Отключение управления виртуальной машиной через XML. Значение по умолчанию при создании: <code>true</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
fields
</td>
<td>
(dict)
</td>
<td>
Поля для управления XML виртуальной машины.
</td>
</tr>
<tr>
<td colspan="6">
<a name="description">
description
</a>
</td>
<td>
(str)
</td>
<td>
Опциональное описание виртуальной машины.
</td>
</tr>
<tr>
<td colspan="6">
<a name="disks">
disks
</a>
</td>
<td>
(dict)
</td>
<td>
Словарь, описывающий диски ВМ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mode
</td>
<td>
(str)
<br>Значения:
<br><code>update</code>
<br><code>detach</code>
<br><code>delete</code>
<br><code>match</code>
<br>Default: <code>update</code>
</td>
<td>
Режим работы параметра.
<br><code>update</code> - указанные диски подключены.
<br><code>detach</code> - указанные диски отключены.
<br><code>delete</code> - указанные диски отключены и удалены; удаляются только отключаемые диски.
<br><code>match</code> - подключены только указанные диски.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
objects
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих диски.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
id
</td>
<td>
(int)
</td>
<td>
Идентификатор диска. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
pci_slot_num_hex
</td>
<td>
(str)
</td>
<td>
Номер слота PCI.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
bus_num_hex
</td>
<td>
(str)
</td>
<td>
Номер шины.
</td>
</tr>
<tr>
<td colspan="6">
<a name="get_console_url">
get_console_url
</a>
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Получить ссылку на консоль ВМ.
</td>
</tr>
<tr>
<td colspan="6">
<a name="get_cloning_status">
get_cloning_status
</a>
</td>
<td>
(bool)
</td>
<td>
Получить статус клонирования ВМ.
</td>
</tr>
<tr>
<td colspan="6">
<a name="get_snapshot_merge_status">
get_snapshot_merge_status
</a>
</td>
<td>
(bool)
</td>
<td>
Получить статус копирования данных из удаляемого снимка на СХД Shared.
</td>
</tr>
<tr>
<td colspan="6">
<a name="guest_agent">
guest_agent
</a>
</td>
<td>
(dict)
</td>
<td>
Параметры для взаимодействия с QEMU Guest Agent.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
enabled
</td>
<td>
(bool)
</td>
<td>
Включить/выключить QEMU Guest Agent.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
exec
</td>
<td>
(dict)
</td>
<td>
Команда, которую необходимо выполнить.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
cmd
</td>
<td>
(str)
</td>
<td>
Название. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
args
</td>
<td>
(dict)
<br>Default: <code>{}</code>
</td>
<td>
Аргументы.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
update_available_commands
</td>
<td>
(bool)
</td>
<td>
Обновить список доступных команд.
</td>
</tr>
<tr>
<td colspan="6">
<a name="hot_resize">
hot_resize
</a>
</td>
<td>
(bool)
</td>
<td>
Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
<br>Значение по умолчанию при создании: <code>false</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="hp_backed">
hp_backed
</a>
</td>
<td>
(bool)
</td>
<td>
Использовать Huge Pages для выделения оперативной памяти виртуальной машины. Система должна быть предварительно сконфигурирована путем выделения Huge Pages на физическом узле.
<br>Значение по умолчанию при создании: <code>false</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="id">
id
</a>
</td>
<td>
(int)
</td>
<td>
Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива по комбинации <a href=#param_name>name</a>, <a href=#rg_name>rg_name</a> и <a href=#account_name>account_name</a>).
<br>Если при вызове модуля <code>decort_kvmvm</code> существующая ВМ идентифицируется по <a href=#id>id</a>, то параметры <a href=#account_id>account_id</a>, <a href=#account_name>account_name</a>, <a href=#rg_id>rg_id</a> и <a href=#rg_name>rg_name</a> игнорируются.
</td>
</tr>
<tr>
<td colspan="6">
<a name="image_id">
image_id
</a>
</td>
<td>
(int)
</td>
<td>
Уникальный цифровой идентификатор образа.
<br>Если этот параметр не задан при создании ВМ, то ВМ будет создана без образа.
<br>Изменение образа у существующей ВМ возможно только при пересоздании загрузочного диска (см. <a href=#boot_disk_redeploy>disk_redeploy</a>).
</td>
</tr>
<tr>
<td colspan="6">
<a name="param_name">
name
</a>
</td>
<td>
(str)
</td>
<td>
Имя ВМ. Чтобы модуль <code>decort_kvmvm</code> мог управлять сервером по его названию, также необходимо задать комбинацию <a href=#account_name>account_name</a> и <a href=#rg_name>rg_name</a> или <a href=#rg_id>rg_id</a>.
<br>Если для существующей ВМ указаны и <a href=#param_name>name</a>, и <a href=#id>id</a>, то параметр <a href=#param_name>name</a> используется для переименования.
</td>
</tr>
<tr>
<td colspan="6">
<a name="network_interface_naming">
network_interface_naming
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>ens</code>
<br><code>eth</code>
</td>
<td>
Шаблон именования сетевых интерфейсов в ОС Linux.
<br>Значение по умолчанию при создании: <code>ens</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="network_order_changing">
network_order_changing
</a>
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Соблюдение очерёдности сетей при их изменении.
<br>Если <code>true</code>, то сравнение списка уже подключённых к ВМ сетей со списком из параметра <a href=#networks>networks</a> будет производится <u>с учётом очерёдности сетей</u> и, <u>при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ</u>, а затем подключение сетей в соответствии с параметром <a href=#networks>networks</a>.
<br>Если <code>false</code>, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра <a href=#networks>networks</a> и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей.
</td>
</tr>
<tr>
<td colspan="6">
<a name="networks">
networks
</a>
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих сети ВМ.
<br>
<br>ВМ не может одновременно быть подключена к сети <code>DPDK</code> и к сети другого типа, кроме <code>EMPTY</code>.
<br>
<br>ВМ не может одновременно быть подключена к сети <code>SDN</code> и к сети другого типа, кроме <code>EMPTY</code>, <code>VFNIC</code>.
<br>
<br>Чтобы отключить все сети, нужно указать пустой список <code>[]</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="networks_enabled">
enabled
</a>
</td>
<td>
(bool)
</td>
<td>
Включен или выключен сетевой интерфейс. Изменение доступно для сетей <code>VINS</code>, <code>EXTNET</code>, <code>DPDK</code>, <code>SDN</code>, <code>TRUNK</code>.
<br>Значение по умолчанию при подключении новой сети: <code>true</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
type
</td>
<td>
(str)
<br>Значения:
<br><code>VINS</code>
<br><code>EXTNET</code>
<br><code>VFNIC</code>
<br><code>DPDK</code>
<br><code>SDN</code>
<br><code>TRUNK</code>
<br><code>EMPTY</code>
</td>
<td>
Тип сети. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
id
</td>
<td>
(int | str)
</td>
<td>
Идентификатор внутренней/внешней/DPDK сети, пула вирт. функций или логического порта SDN.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
ip_addr
</td>
<td>
(str)
</td>
<td>
IP-адрес, используемый для подключения к данной сети.
<br>Применимо только для <code>VINS</code> и <code>EXTNET</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="networks_mac">
mac
</a>
</td>
<td>
(str)
</td>
<td>
MAC-адрес сетевого интерфейса.
<br>Не применим для сети типа <code>EMPTY</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
mtu
</td>
<td>
(int)
</td>
<td>
MTU интерфейса.
<br>Применимо только для <code>EXTNET</code> и <code>DPDK</code>.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="networks_security_group_ids">
security_group_ids
</a>
</td>
<td>
(list)
</td>
<td>
Идентификаторы групп безопасности.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
<a name="networks_security_group_mode">
security_group_mode
</a>
</td>
<td>
(bool)
</td>
<td>
Включить/выключить группы безопасности.
<br>Значение по умолчанию при подключении новой сети: <code>false</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="numa_affinity">
numa_affinity
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>strict</code>
<br><code>loose</code>
<br><code>none</code>
</td>
<td>
Правило применения NUMA affinity к виртуальной машине.
<br><code>strict</code> - строго с NUMA affinity.
<br><code>loose</code> - использовать NUMA affinity, если возможно.
<br><code>none</code> - отменить применение NUMA affinity.
<br>Значение по умолчанию при создании: <code>none</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="os_version">
os_version
</a>
</td>
<td>
(str)
</td>
<td>
Версия операционной системы. Если не задано при создании ВМ с образом или при пересоздании загрузочного диска, то наследуется от названия образа.
</td>
</tr>
<tr>
<td colspan="6">
<a name="pool">
pool
</a>
</td>
<td>
(str)
</td>
<td>
Пул СХД, заданной параметром <a href=#sep_id>sep_id</a>. Если пул не задан, то он будет выбран платформой.
</td>
</tr>
<tr>
<td colspan="6">
<a name="preferred_cpu_cores">
preferred_cpu_cores
</a>
</td>
<td>
(list)
</td>
<td>
Список номеров предпочтительных выделенных ядер ЦП (см. параметр <a href=#cpu_pin>cpu_pin</a>).
<br>Чтобы очистить список номеров предпочтительных выделенных ядер ЦП, нужно указать пустой список <code>[]</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="ram">
ram
</a>
</td>
<td>
(int)
</td>
<td>
Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти.
</td>
</tr>
<tr>
<td colspan="6">
<a name="rg_id">
rg_id
</a>
</td>
<td>
(int)
</td>
<td>
Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ.
<br>Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации <a href=#account_name>account_name</a> и <a href=#rg_name>rg_name</a>).
</td>
</tr>
<tr>
<td colspan="6">
<a name="rg_name">
rg_name
</a>
</td>
<td>
(str)
</td>
<td>
Имя уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ.
<br>Данный параметр является одним из методов идентификации существующей РГ, когда задается пара <a href=#account_name>account_name</a> и <a href=#rg_name>rg_name</a> (альтернативой является задание <a href=#rg_id>rg_id</a>).
<br>Если заданы и <a href=#rg_id>rg_id</a>, и <a href=#rg_name>rg_name</a>, то параметр <a href=#rg_name>rg_name</a> игнорируется.
</td>
</tr>
<tr>
<td colspan="6">
<a name="rollback_to">
rollback_to
</a>
</td>
<td>
(str)
</td>
<td>
Имя снимка, к состоянию которого необходимо совершить откат ВМ.
</td>
</tr>
<tr>
<td colspan="6">
<a name="sep_id">
sep_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
</td>
</tr>
<tr>
<td colspan="6">
<a name="ssh_key">
ssh_key
</a>
</td>
<td>
(str)
</td>
<td>
Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром <a href=#ssh_key_user>ssh_key_user</a>.
<br>Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях.
</td>
</tr>
<tr>
<td colspan="6">
<a name="ssh_key_user">
ssh_key_user
</a>
</td>
<td>
(str)
</td>
<td>
Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром <a href=#ssh_key>ssh_key</a>.
<br>Данный параметр является обязательным, если задан <a href=#ssh_key>ssh_key</a>. Используется только при создании и игнорируется при других операциях.
</td>
</tr>
<tr>
<td colspan="6">
<a name="state">
state
</a>
</td>
<td>
(str)
<br>Значения:
<br><code>present</code>
<br><code>absent</code>
<br><code>started</code>
<br><code>stopped</code>
<br><code>paused</code>
</td>
<td>
Целевое состояние ВМ.
<br><code>present</code> - виртуальная машина существует и не удалена. Если удалена в корзину, то будет восстановлена из корзины.
<br><code>absent</code> - виртуальная машина безвозвратно удалена.
<br><code>started</code> - виртуальная машина запущена. Если остановлена, то будет запущена. Если удалена в корзину, то будет восстановлена из корзины.
<br><code>stopped</code> - виртуальная машина остановлена. Если запущена, то будет остановлена.
<br><code>paused</code> - виртуальная машина приостановлена.
<br>Значение по умолчанию при создании: <code>present</code>
</td>
</tr>
<tr>
<td colspan="6">
<a name="storage_policy_id">
storage_policy_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор политики хранения. Обязателен при создании виртуальной машины с диском/дисками и пересоздании загрузочного диска. Не поддерживается изменение в существующей виртуальной машине.
</td>
</tr>
<tr>
<td colspan="6">
<a name="tag">
tag
</a>
</td>
<td>
(dict)
</td>
<td>
Словарь, пары ключ-значение которого, описывают тэги для ВМ.
<br>Чтобы очистить теги, нужно указать пустой словарь <code>{}</code>.
</td>
</tr>
<tr>
<td colspan="6">
<a name="zone_id">
zone_id
</a>
</td>
<td>
(int)
</td>
<td>
Идентификатор зоны ВМ.
</td>
</tr>
</table>
## Возвращаемые значения модуля decort_kvmvm
Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами:
### Основная информация
<table>
<tr>
<th colspan="6">Ключ</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
account_id
</td>
<td>
int
</td>
<td>
Идентификатор аккаунта.
</td>
</tr>
<tr>
<td colspan="6">
affinity_label
</td>
<td>
str
</td>
<td>
Метка affinity.
</td>
</tr>
<tr>
<td colspan="6">
affinity_rules
</td>
<td>
list
</td>
<td>
Список словарей, описывающих affinity правила.
</td>
</tr>
<tr>
<td colspan="6">
anti_affinity_rules
</td>
<td>
list
</td>
<td>
Список словарей, описывающих anti-affinity правила.
</td>
</tr>
<tr>
<td colspan="6">
arch
</td>
<td>
str
</td>
<td>
Архитектура ВМ.
</td>
</tr>
<tr>
<td colspan="6">
auto_start
</td>
<td>
bool
</td>
<td>
Автоматический запуск ВМ после перезапуска вычислительного узла, за которым она закреплена.
</td>
</tr>
<tr>
<td colspan="6">
boot_mode
</td>
<td>
str
</td>
<td>
Режим загрузки.
</td>
</tr>
<tr>
<td colspan="6">
cd_image_id
</td>
<td>
int
</td>
<td>
Идентификатор диска CD-ROM.
</td>
</tr>
<tr>
<td colspan="6">
clones
</td>
<td>
list
</td>
<td>
Список идентификаторов клонов ВМ.
</td>
</tr>
<tr>
<td colspan="6">
clone_reference
</td>
<td>
int
</td>
<td>
Идентификатор ВМ, клоном которой является данная ВМ.
</td>
</tr>
<tr>
<td colspan="6">
chipset
</td>
<td>
str
</td>
<td>
Эмулируемый чипсет.
</td>
</tr>
<tr>
<td colspan="6">
cpu
</td>
<td>
int
</td>
<td>
Количество виртуальных процессоров.
</td>
</tr>
<tr>
<td colspan="6">
cpu_pin
</td>
<td>
bool
</td>
<td>
Запуск виртуальной машины на выделенных ядрах ЦП.
</td>
</tr>
<tr>
<td colspan="6">
custom_fields
</td>
<td>
dict | null
</td>
<td>
Словарь, управляющий XML виртуальной машины.
<br>Если <code>null</code>, то управление виртуальной машиной через XML отключено, иначе - управление через XML включено.
</td>
</tr>
<tr>
<td colspan="6">
disks
</td>
<td>
list
</td>
<td>
Список словарей, описывающих диски, подключенные к ВМ.
</td>
</tr>
<tr>
<td colspan="6">
disk_size
</td>
<td>
int
</td>
<td>
Размер загрузочного диска в ГБ.
</td>
</tr>
<tr>
<td colspan="6">
guest_agent
</td>
<td>
dict
</td>
<td>
Информация о QEMU Guest Agent ВМ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
enabled
</td>
<td>
bool
</td>
<td>
Включен/выключен.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
enabled_agent_features
</td>
<td>
list
</td>
<td>
Список доступных команд.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
exec_result
</td>
<td>
any
</td>
<td>
Результат выполнения команды.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
guid
</td>
<td>
str
</td>
<td>
Идентификатор.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
last_update
</td>
<td>
int
</td>
<td>
Временная метка последнего обновления доступных команд.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
user
</td>
<td>
str
</td>
<td>
Пользователь, совершивший последнее обновление доступных команд.
</td>
</tr>
<tr>
<td colspan="6">
hot_resize
</td>
<td>
bool
</td>
<td>
Поддержка изменения объёма ОЗУ и количества процессоров у запущенной ВМ.
</td>
</tr>
<tr>
<td colspan="6">
hp_backed
</td>
<td>
bool
</td>
<td>
Использовать Huge Pages для выделения оперативной памяти виртуальной машины.
</td>
</tr>
<tr>
<td colspan="6">
id
</td>
<td>
int
</td>
<td>
Идентификатор ВМ.
</td>
</tr>
<tr>
<td colspan="6">
image_id
</td>
<td>
int | null
</td>
<td>
Идентификатор образа.
</td>
</tr>
<tr>
<td colspan="6">
interfaces
</td>
<td>
list
</td>
<td>
Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI.
</td>
</tr>
<tr>
<td colspan="6">
boot_loader_type
</td>
<td>
str
</td>
<td>
Тип загрузчика операционной системы.
</td>
</tr>
<tr>
<td colspan="6">
boot_loader_metaiso
</td>
<td>
dict | null
</td>
<td>
Информация об образе загрузчика ВМ.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
device_name
</td>
<td>
str
</td>
<td>
Имя устройства
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
path
</td>
<td>
str
</td>
<td>
Путь к файлу образа.
</td>
</tr>
<tr>
<td colspan="6">
name
</td>
<td>
str
</td>
<td>
Имя ВМ.
</td>
</tr>
<tr>
<td colspan="6">
network_interface_naming
</td>
<td>
str
</td>
<td>
Шаблон именования сетевых интерфейсов в ОС Linux.
</td>
</tr>
<tr>
<td colspan="6">
numa_affinity
</td>
<td>
str
</td>
<td>
Правило применения NUMA affinity к виртуальной машине.
</td>
</tr>
<tr>
<td colspan="6">
os_version
</td>
<td>
str
</td>
<td>
Версия операционной системы.
</td>
</tr>
<tr>
<td colspan="6">
password
</td>
<td>
str
</td>
<td>
Пароль пользователя ОС по умолчанию.
</td>
</tr>
<tr>
<td colspan="6">
pinned_to_stack
</td>
<td>
bool
</td>
<td>
ВМ привязана к вычислительному узлу.
</td>
</tr>
<tr>
<td colspan="6">
preferred_cpu_cores
</td>
<td>
list
</td>
<td>
Список номеров предпочтительных выделенных ядер ЦП.
</td>
</tr>
<tr>
<td colspan="6">
private_ips
</td>
<td>
list
</td>
<td>
Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям.
</td>
</tr>
<tr>
<td colspan="6">
public_ips
</td>
<td>
list
</td>
<td>
Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям.
</td>
</tr>
<tr>
<td colspan="6">
ram
</td>
<td>
int
</td>
<td>
Объём ОЗУ ВМ в МБ.
</td>
</tr>
<tr>
<td colspan="6">
rg_id
</td>
<td>
int
</td>
<td>
Идентификатор ресурсной группы, которой принадлежит данная ВМ.
</td>
</tr>
<tr>
<td colspan="6">
snapshots
</td>
<td>
list
</td>
<td>
Список словарей, описывающих снимки ВМ.
</td>
</tr>
<tr>
<td colspan="6">
state
</td>
<td>
str
</td>
<td>
Состояние ВМ.
</td>
</tr>
<tr>
<td colspan="6">
tags
</td>
<td>
dict
</td>
<td>
Словарь, пары ключ-значение которого, описывают тэги ВМ.
</td>
</tr>
<tr>
<td colspan="6">
tech_status
</td>
<td>
str
</td>
<td>
Технический статус ВМ.
</td>
</tr>
<tr>
<td colspan="6">
username
</td>
<td>
str
</td>
<td>
Имя пользователя ОС по умолчанию.
</td>
</tr>
<tr>
<td colspan="6">
vnc_password
</td>
<td>
str
</td>
<td>
Пароль, используемый для подключения к ВМ через VNC.
</td>
</tr>
<tr>
<td colspan="6">
zone_id
</td>
<td>
int
</td>
<td>
Идентификатор зоны ВМ.
</td>
</tr>
</table>
### Ссылка на консоль
<table>
<tr>
<th colspan="6">Ключ</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
console_url
</td>
<td>
str
</td>
<td>
Ссылка на консоль ВМ.
</td>
</tr>
</table>
### Статус копирования данных из удаляемого снимка на СХД Shared
<table>
<tr>
<th colspan="6">Ключ</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
snapshot_merge_status
</td>
<td>
dict
</td>
<td>
Словарь, где ключ - идентификатор диска, а значение - статус.
</td>
</tr>
</table>
### Статус клонирования
<table>
<tr>
<th colspan="6">Ключ</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
cloning_status
</td>
<td>
dict
</td>
<td>
Словарь, описывающий статус клонирования.
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
disk_id
</td>
<td>
int
</td>
<td>
Идентификатор клонируемого диска
</td>
</tr>
<tr>
<td></td>
<td colspan="5">
status
</td>
<td>
dict
</td>
<td>
Словарь с подробным описанием статуса.
<br>Может быть пустым словарем <code>{}</code>.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
type
</td>
<td>
int
</td>
<td>
Тип клонирования.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
bandwidth
</td>
<td>
int
</td>
<td>
Скорость клонирования данных.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
cur
</td>
<td>
int
</td>
<td>
Объём переданных данных.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
end
</td>
<td>
int
</td>
<td>
Общий объём передаваемых данных.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
ready
</td>
<td>
bool
</td>
<td>
Готовность клонирования.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="4">
progress_percent
</td>
<td>
int
</td>
<td>
Прогресс клонирования в процентах.
</td>
</tr>
</table>
## Примеры использования
### Создать
#### С указанием описания
```
- 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: |
<div>
Hello World!
</div>
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
```