Data source функция decort_kvmvm служит для получения информации об уже существующей в облачной платформе виртуальной машине (Virtual Machine, VM), созданной на базе системы виртуализации KVM.
Аргументы
Data source функция decort_kvmvm принимает следующие аргументы:
| Аргумент |
Тип |
Обязательный |
Описание |
| compute_id |
int |
✔️ |
Идентификатор экземпляра compute, соответствующего данной виртуальной машине (подробнее о понятии compute см. в разделе Обзор облачной платформы DECORT). |
Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанному виртуальному серверу и ресурсной группе. В противном случае возникнет ошибка доступа.
Пользователь облачной платформы задается на стадии инициализации Terraform провайдера DECORT (см. подробности).
Возвращаемые значения
В случае успешного выполнения data source функция decort_kvmvm возвращает в указанную при вызове переменную следующие значения:
| Параметр |
Тип |
Описание |
| acl |
[]Struct см. ниже |
Cписок Acces Control |
| account_id |
int |
Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины |
| account_name |
string |
Имя подписчика, которому принадлежит данная виртуальная машина |
| affinity_label |
string |
Лейбл аффинити |
| affinity_rules |
[]Struct см. ниже |
Правила аффинити для компьютов |
| anti_affinity_rules |
[]Struct см. ниже |
Правила анти аффинити для компьютов |
| affinity_weight |
int |
weight аффинити |
| arch |
string |
Архитектура |
| auto_start_w_node |
bool |
Автостарт при рестарте ноды |
| boot_order |
[]string |
Boot order |
| boot_disk_id |
int |
Идентификатор загрузочного диска виртуальной машины |
| bootdisk_size |
int |
Размер загрузочного диска в ГБ |
| boot_image_id |
int |
ID загрузочного образа |
| chipset |
string |
Тип эмулируемой системы |
| cd_image_id |
int |
ID cd image id |
| clone_reference |
int |
кол-во клонов |
| clones |
[]int |
id клонов |
| computeci_id |
int |
Id computeci |
| cpu_pin |
bool |
Необходимость запускать ВМ на выделенных CPU ядрах |
| cpus |
int |
Количество виртуальных CPU, выделенных данному серверу |
| created_by |
string |
Кем создан ресурс |
| created_time |
int |
Время создания ресурса |
| custom_fields |
string |
Кастомные поля |
| deleted_by |
string |
Кем удален ресурс |
| deleted_time |
int |
Время удаления ресурса |
| desc |
string |
Текстовое описание виртуальной машины |
| devices |
string |
Девайсы |
| disks |
[]Struct см. ниже |
информация о дисках компьюта |
| driver |
string |
Аппаратная архитектура данной виртуальной машины |
| gid |
int |
GID |
| guid |
int |
GUID |
| hp_backed |
bool |
Необходимость использовать для выделения RAM виртуальной машины Huge Pages ядрах |
| image_id |
int |
Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины |
| image_name |
string |
Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины |
| interfaces |
[]Struct см. ниже |
Информация о интерфейсах компьюта |
| lock_status |
string |
Статус доступности |
| manager_id |
int |
Manager id |
| manager_type |
string |
Type manager |
| migrationjob |
int |
Migrationjob |
| milestones |
int |
Вехи |
| name |
string |
Имя виртуального сервера |
| natable_vins_id |
int |
NAT vins id |
| natable_vins_ip |
string |
NAT vins ip |
| natable_vins_name |
string |
NAT vins name |
| natable_vins_network |
string |
NAT vins network |
| natable_vins_network_name |
string |
NAT vins network name |
| need_reboot |
bool |
флаг, указывающий, что требуется перезагрузка |
| numa_affinity |
string |
Необходимость выравнивать ВМ по NUMA |
| numa_node_id |
int |
ID узла NUMA |
| os_version |
string |
Версия ОС, установленная на ВМ |
| os_users |
[]Struct см. ниже |
Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры: * (string) login - учётная запись в гостевой ОС. * (string) password - пароль к этой учётной записи. |
| pinned |
bool |
добавлен ли компьют на стек |
| preferred_cpu |
[]int |
список ядер для использования в механизме vcpupinning |
| ram |
int |
Объём оперативной памяти в МБ, выделенной этой виртуальной машине |
| reference_id |
string |
ID reference |
| registered |
bool |
Компьют зарегестрирован |
| res_name |
string |
Res name |
| reserved_node_cpus |
[]int |
Количество зарезервированных CPU в узле |
| rg_id |
int |
Идентификатор ресурсной группы, к которой принадлежит виртуальная машина |
| rg_name |
string |
Имя ресурсной группы, к которой принадлежит виртуальная машина |
| snap_sets |
[]Struct см. ниже |
Snap sets |
| stateless_sep_id |
int |
ID сеп |
| stateless_sep_type |
string |
Тип сеп |
| status |
string |
Cтатус |
| tags |
map[string]string |
Тэги |
| tech_status |
string |
Технический статус |
| updated_by |
string |
Кем обновлен ресурс |
| updated_time |
int |
Время обновления ресурса |
| user_managed |
bool |
User managed |
| pci_devices |
[]int |
Список PCI девайсов |
| userdata |
string |
Параметры cloud_init |
| vnc_password |
string |
vnc пароль |
| vgpus |
[]Struct см. ниже |
Список vgpu |
| virtual_image_id |
int |
ID виртуального образа |
| virtual_image_name |
string |
Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины |
| loader_type |
string |
Тип ВМ |
| boot_type |
string |
Тип загрузки образа. Возможные значения - bios, uefi |
| hot_resize |
bool |
Изменение размера ВМ |
| network_interface_naming |
string |
Наименование сетевого интерфейса |
| zone_id |
int |
Идентификатор экземпляра zone |
Описание структуры acl
| Параметр |
Тип |
Описание |
| account_acl |
[]Struct см. ниже |
Информация о списке пользователей аккаунтов |
| compute_acl |
[]Struct см. ниже |
Информация о списке пользователей компьютов |
| rg_acl |
[]Struct см. ниже |
Информация о списке пользователей ресурной группы |
Описание структуры affinity rules
| Параметр |
Тип |
Описание |
| guid |
string |
guid |
| key |
string |
Ключ |
| mode |
string |
Режим сравнения |
| policy |
string |
Степень "строгости" этого правила |
| topology |
string |
Топология |
| value |
string |
Значение |
Описание структуры List acl
| Параметр |
Тип |
Описание |
| explicit |
bool |
Явно ли указан доступ |
| guid |
string |
guid Ресурса |
| right |
string |
Права на ресурс |
| status |
string |
Статус ресурса |
| type |
string |
Тип ресурса |
| user_group_id |
string |
ID user group |
Описание структуры vgpu
| Параметр |
Тип |
Описание |
| id |
int |
Идентификатор ресурса |
| gid |
int |
ID платформы |
| type |
string |
Тип |
| mode |
string |
Режим работы ресурса |
| status |
string |
Статус ресурса |
| profile_id |
int |
Идентификатор профиля |
| ram |
int |
Объем оперативной памяти |
| last_update_time |
int |
Время последнего обновления |
| created_time |
int |
Время создания |
| deleted_time |
int |
Время удаления |
| vmid |
int |
Идентификатор виртуальной машины |
| pgpuid |
int |
Идентификатор GPU профиля |
| reference_id |
string |
Ссылочный идентификатор |
| account_id |
int |
Идентификатор аккаунта |
| rg_id |
int |
Идентификатор ресурсной группы |
| last_claimed_by |
int |
Последний пользователь, запросивший ресурс |
| pci_slot |
int |
Номер PCI слота |
| bus_number |
int |
Номер шины |
| guid |
int |
GUID |
Описание структуры os users
| Параметр |
Тип |
Описание |
| guid |
string |
GUID |
| login |
string |
Логин |
| password |
string |
Пароль |
| public_key |
string |
Публичный ssh ключ |
Описание структуры disks
| Параметр |
Тип |
Описание |
| _ckey |
string |
ckey |
| acl |
string |
Acces Control List |
| account_id |
int |
ID аккаунта |
| bus_number |
int |
Номер шины |
| boot_partition |
int |
Загрузочный раздел |
| created_time |
int |
Время создания диска |
| deleted_time |
int |
Время удаления диска |
| description |
string |
Описание |
| destruction_time |
int |
Время удаления |
| disk_path |
string |
Путь диска |
| gid |
int |
GID |
| guid |
int |
GUID |
| disk_id |
int |
ID диска |
| image_id |
int |
ID образа |
| images |
[]int |
Список образов |
| iotune |
[]Struct см. ниже |
Ограничения диска |
| iqn |
string |
iqn диска |
| live_migration_job_id |
int |
ID миграции |
| login |
string |
Логин для доступа к диску |
| milestones |
int |
Вехи |
| name |
string |
Наименование диска |
| params |
string |
Параметры диска |
| parent_id |
int |
id родительского диска |
| passwd |
string |
Пароль для доступа к диску |
| pci_slot |
int |
id pci слота, к которому подключен диск |
| pool |
string |
Имя пула в системе хранения, на ресурсах которой размещён данный диск |
| present_to |
map[string]int |
Список ID ресурсов, которым предоставлен диск |
| purge_time |
int |
Время последней попытки |
| qemu_guest |
Struct{} см. ниже |
QEMU агент |
| replication |
Struct{} см. ниже |
Информация о реплике диска |
| reality_device_number |
int |
Реальный номер устройства |
| res_id |
int |
id ресурса |
| role |
string |
Роль диска |
| sep_id |
int |
Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск |
| shareable |
bool |
Флаг, отвечающий за доступность диска дургим ресурсам |
| size_available |
float |
Кол-во свободного места, в ГБ |
| size_max |
int |
Размер диска в ГБ |
| size_used |
float |
Кол-во используемого места, в ГБ |
| snapshots |
[]Struct{}см. ниже |
Снимки состояния диска |
| status |
string |
Статус диска |
| storage_policy_id |
int |
ID политики хранения |
| tech_status |
string |
Технический статус диска |
| to_clean |
bool |
Необходимость очистки диска перед его удалением |
| type |
string |
Тип диска с точки зрения его роли в составе compute. Может принимать одно из фиксированных значений: "B" - признак загрузочного диска ("boot"). "D" - признак дополнительного диска ("data") |
Описание структуры iotune
| Параметр |
Тип |
Описание |
| read_bytes_sec |
int |
Кол-во байт для чтения в секунду |
| read_bytes_sec_max |
int |
Максимальное кол-во байт для чтения |
| read_iops_sec |
int |
Кол-во операций чтения io в секунду |
| read_iops_sec_max |
int |
Максимальное число io операций чтения |
| size_iops_sec |
int |
Размер io операций |
| total_bytes_sec |
int |
Общий размер байт в секунду |
| total_bytes_sec_max |
int |
Максимальный общий размер байт в секунду |
| total_iops_sec |
int |
Общее кол-во io операций в секунду |
| total_iops_sec_max |
int |
Максимальное общее кол-во io операций в секунду |
| write_bytes_sec |
int |
Кол-во байт для записи в секунду |
| write_bytes_sec_max |
int |
Максимальное кол-во байт для записи в секунду |
| write_iops_sec |
int |
Кол-во операций записи в секунду |
| write_iops_sec_max |
int |
Максимальное число операций записей |
Описание структуры replication
| Параметр |
Тип |
Описание |
| disk_id |
int |
id диска |
| pool_id |
string |
id пула |
| role |
string |
Роль диска (главный или реплика) |
| self_volume_id |
string |
id раздела |
| storage_id |
string |
id хранилища |
| volume_id |
string |
id раздела |
Описание структуры snapshots
| Параметр |
Тип |
Описание |
| guid |
string |
id снимка |
| label |
string |
Наименование снимка |
| res_id |
string |
Ссылка на снимок |
| snap_set_guid |
string |
Установленный id снимка |
| reference_id |
int |
Reference ID |
| snap_set_time |
int |
Установленное время снимка |
| timestamp |
int |
Время снимка |
Описание структуры interfaces
| Параметр |
Тип |
Описание |
| bus_number |
int |
Номер шины |
| conn_id |
int |
ID connect |
| conn_type |
string |
Тип connect |
| enabled |
bool |
Доступность подключения |
| enable_secgroup |
bool |
Доступность групп безопасности |
| def_gw |
string |
Шлюз по умолчанию |
| flip_group_id |
int |
id flip group |
| guid |
string |
GUID |
| ip_address |
string |
IP адрес |
| listen_ssh |
bool |
открыт ли ssh connect |
| mac |
string |
MAC адрес устройства |
| mtu |
int |
Максимальный объём данных, который может быть передан за одну итерацию |
| name |
string |
Имя |
| net_id |
int |
ID сети |
| netmask |
int |
Маска сети |
| net_type |
string |
Тип сети |
| node_id |
int |
ID узла |
| pci_slot |
int |
Pci Slot |
| qos |
[]Struct{}см. ниже |
QOS |
| sdn_interface_id |
string |
ID SDN порта, при наличии |
| security_groups |
[]int |
Список ID групп безопасности |
| target |
string |
Цель сети |
| type |
string |
Тип |
| vnfs |
[]int |
VNFS |
| libvirt_settings |
[]Struct{}см. ниже |
Параметры libvirt virtio интерфейса |
Описание структуры libvirt_settings
| Параметр |
Тип |
Описание |
| guid |
string |
GUID |
| txmode |
string |
TX mode |
| ioeventfd |
string |
IO event |
| event_idx |
string |
Event ID |
| queues |
int |
Количество очередей |
| rx_queue_size |
int |
Длина очереди RX |
| tx_queue_size |
int |
Длина очереди TX |
Описание структуры qos
| Параметр |
Тип |
Описание |
| e_rate |
int |
E rate |
| guid |
string |
ID ресурса |
| in_brust |
int |
In brust |
| in_rate |
int |
In rate |
Описание структуры snap sets
| Параметр |
Тип |
Описание |
| disks |
[]int |
Список id дисков |
| guid |
string |
GUID |
| label |
string |
Лейбл |
| timestamp |
int |
Время |
Описание структуры qemu_guest
| Параметр |
Тип |
Описание |
| enabled |
bool |
Включен ли агент |
| enabled_agent_features |
[]string |
Свойства агента |
| guid |
string |
GUID |
| last_update |
int |
Дата последего обновления |
| user |
string |
Имя пользователя |
Пример использования
В нижеприведённом примере посредством вызова data source функции decort_kvmvm извлекается информация об уже существующем на платформевиртуальном сервере со следующими характеристиками:
- Имя сервера MyOldVM;
- Идентификатор ресурсной группы, в которой находится данный сервер - 123.
data "decort_kvmvm" "comp" {
#получение информации по идентификатору машины - compute_id
#id виртуальной машины
#обязательный параметр
#тип - целое число
compute_id = 11346
}
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий раздел).
Чтобы получить идентификатор ресурсной группы (аргумент rg_id), можно воспользоваться data source функцией decort_resgroup.
После успешного завершения такого вызова decort_kvmvm в переменной data.decort_kvmvm.comp будут сохранены возвращаемые значения. Так, например:
- пароль для доступа в гостевую ОС, назначенный по умолчанию при создании VM -
"data.decort_kvmvm.comp.os_users.0.password
- идентификатор образа ОС, на базе которого была создана данная VM -
data.decort_kvmvm.comp.image_id
- текущий объём ОЗУ -
data.decort_kvmvm.comp.ram