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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Модуль 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
```