Created 06.2 Data функция decort_kvmvm: получение информации о виртуальной машине на базе KVM. (markdown)

svs1370
2021-09-15 17:05:45 +03:00
parent 0c3e9dbc92
commit 644c632b30

@@ -0,0 +1,62 @@
_Data source_ функция **decort_kvmvm** служит для получения информации об уже существующей в облачной платформе виртуальной машине (Virtual Machine, VM), созданной на базе системы виртуализации KVM.
## Аргументы
_Data source_ функция **decort_kvmvm** принимает следующие аргументы:
| Аргумент | Тип | Описание |
| --- | --- | --- |
| name | string | Имя виртуальной машины. Для идентификации виртуальной машины по её имени также необходимо указать идентификатор ресурсной группы, которой она принадлежит (`rg_id`).<br>Обратите внимание, что имя виртуальной машины уникально только в рамках одной и той же ресурсной группы и не может быть пустым.<br>Альтернативным способом идентификации виртуальной машины является задание параметра `compute_id`. |
| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данный виртуальный сервер.<br/>Данный аргумент является обязательным, если идентификация виртуальной машины выполняется по её имени. |
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине (подробнее о понятии _compute_ см. в разделе [Обзор облачной платформы DECORT](https://github.com/rudecs/terraform-provider-decort/wiki/03.-%D0%9E%D0%B1%D0%B7%D0%BE%D1%80-%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D0%BD%D0%BE%D0%B9-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B-DECORT.)). Если задан этот параметр, то параметры `name` и `rg_id` игнорируются. |
Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанному виртуальному серверу и ресурсной группе. В противном случае возникнет ошибка доступа.
Пользователь облачной платформы задается на стадии инициализации Terraform провайдера DECORT (см. [подробности](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
## Возвращаемые значения
В случае успешного выполнения _data source_ функция **decort_kvmvm** возвращает в указанную при вызове переменную следующие значения:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
| arch | string | Аппаратная архитектура данной виртуальной машины. |
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
| description | string | Текстовое описание виртуальной машины. |
| extra_disks | list of ints | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
| id | int | Уникальный идентификатор этой виртуальной машины в облачной платформе. Всегда совпадает с `compute_id`. |
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
| image_name | string | Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
| name | string | Имя виртуального сервера.<br>Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. |
| network | list of dicts | Характеристики сетевых сегментов, к которым подключен данный сервер. Формат структуры:<br/>* (string) `net_type` - тип сети, соответствующей данному подключению.<br/>* (int) `net_id` - идентификатор соответствующего сетевого сегмента.<br/>* (string) `ip_address` - IP адрес, выделенный данному подключению.<br/>* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. |
| os_users | list of dicts | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:<br/>* (string) `login` - учётная запись в гостевой ОС.<br/>* (string) `password` - пароль к этой учётной записи. |
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
| rg_id | int| Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
## Пример использования
В нижеприведённом примере посредством вызова _data source_ функции **decs_vm** извлекается информация об уже существующем в платформе виртуальном сервере со следующими характеристиками:
* Имя сервера _MyOldVM_;
* Идентификатор ресурсной группы, в которой находится данный сервер - 123.
```
data "decort_kvmvm" "existing_vm" {
name = "MyOldVM" # this is the name of pre-existing virtual machine
rgid = 123 # this is the ID of resource group, where VM named "MyOldVM" is found
}
# Once the above directive completes, VM ID will be accessible
# as "${data.decort_kvmvm.existing_vm.id}"
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)).
Чтобы получить идентификатор ресурсной группы (аргумент `rg_id`), можно воспользоваться _data source_ функцией [decort_resgroup](https://github.com/rudecs/terraform-provider-decort/wiki/06.1-Data-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decs_resgroup:-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BE-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BD%D0%BE%D0%B9-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B5.).
После успешного завершения такого вызова **decort_kvmvm** в переменной `data.decort_kvmvm.existing_vm` будут сохранены возвращаемые значения. Так, например:
* пароль для доступа в гостевую ОС, назначенный по умолчанию при создании VM - `"${data.decort_kvmvm.existing_vm.os_users.0.password}"`
* идентификатор образа ОС, на базе которого была создана данная VM - `"${data.decort_kvmvm.existing_vm.image_id}"`
* текущий объём ОЗУ - `"${data.decort_kvmvm.existing_vm.ram}"`