diff --git a/06.2-Data-функция-decort_kvmvm:-получение-информации-о-виртуальной-машине-на-базе-KVM..md b/06.2-Data-функция-decort_kvmvm:-получение-информации-о-виртуальной-машине-на-базе-KVM..md new file mode 100644 index 0000000..f159f78 --- /dev/null +++ b/06.2-Data-функция-decort_kvmvm:-получение-информации-о-виртуальной-машине-на-базе-KVM..md @@ -0,0 +1,62 @@ +_Data source_ функция **decort_kvmvm** служит для получения информации об уже существующей в облачной платформе виртуальной машине (Virtual Machine, VM), созданной на базе системы виртуализации KVM. + +## Аргументы +_Data source_ функция **decort_kvmvm** принимает следующие аргументы: + +| Аргумент | Тип | Описание | +| --- | --- | --- | +| name | string | Имя виртуальной машины. Для идентификации виртуальной машины по её имени также необходимо указать идентификатор ресурсной группы, которой она принадлежит (`rg_id`).
Обратите внимание, что имя виртуальной машины уникально только в рамках одной и той же ресурсной группы и не может быть пустым.
Альтернативным способом идентификации виртуальной машины является задание параметра `compute_id`. | +| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данный виртуальный сервер.
Данный аргумент является обязательным, если идентификация виртуальной машины выполняется по её имени. | +| 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 | Имя виртуального сервера.
Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. | +| network | list of dicts | Характеристики сетевых сегментов, к которым подключен данный сервер. Формат структуры:
* (string) `net_type` - тип сети, соответствующей данному подключению.
* (int) `net_id` - идентификатор соответствующего сетевого сегмента.
* (string) `ip_address` - IP адрес, выделенный данному подключению.
* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. | +| os_users | list of dicts | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:
* (string) `login` - учётная запись в гостевой ОС.
* (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}"` \ No newline at end of file