Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Ресурсы TF

zvirt_address_pool

Cхема

Required
  • name (String) - имя адрес-пула.

Optional
  • addresses (Set of String) - адреса, входящие в адрес-пул.

  • description (String) - описание адрес-пула.

  • type (String) - тип адрес-пула.

Read-Only
  • id (String) - уникальный идентификатор адрес-пула.

zvirt_affinity_group

Cхема

Required
  • cluster_id (String) - идентификатор кластера, к которому относится группа сходства (affinity).

  • hosts_rule (Attributes) - правило сходства для хостов (см. вложенную схему ниже).

  • name (String) - имя группы сходства.

  • vms_rule (Attributes) - правило сходства (affinity) для виртуальных машин(см. вложенную схему ниже).

Optional
  • description (String) - описание группы сходства(affinity).

  • host_labels (Set of String) - идентификаторы меток сходства хостов, прикреплённых к группе.

  • hosts (Set of String) - идентификаторы хостов, прикреплённых к группе.

  • priority (Number) - приоритет группы сходства (affinity).

Read-Only
  • id (String) - уникальный идентификатор группы сходства.

Вложенная схема hosts_rule
Required
  • enforcing (Boolean) - признак принудительного применения правила.

  • policy (String) - политика правила. Допустимые значения: 'disabled', 'positive', 'negative'.

Вложенная схема vms_rule
Required
  • enforcing (Boolean) - признак принудительного применения правила.

  • policy (String) - политика правила. Допустимые значения: 'disabled', 'positive', 'negative'.

zvirt_affinity_label

Cхема

Required
  • hosts (Set of String) - идентификаторы хостов, связанных с меткой сходства.

  • name (String) - имя метки сходства.

Optional
  • force_remove_vms (Boolean) - принудительно удалить виртуальные машины из метки сходства.

Read-Only
  • id (String) - уникальный идентификатор метки сходства.

  • vms (Set of String) - идентификаторы виртуальных машин, связанных с меткой сходства.

zvirt_direct_lun_fc

Cхема

Required
  • alias (String) - псевдоним Direct LUN.

  • lun_id (String) - идентификатор Direct LUN.

Optional
  • description (String) - описание Direct LUN.

  • shareable (Boolean) - включение/отключение опции "Совместное использование" Direct LUN.

  • wipe_after_delete (Boolean) - включение/отключение опции "очистка Direct LUN после удаления".

Read-Only
  • id (String) - уникальный идентификатор Direct LUN.

  • size (Number) - размер Direct LUN в байтах.

zvirt_direct_lun_iscsi

Cхема

Required
  • address (String) - адрес Direct LUN.

  • alias (String) - псевдоним Direct LUN.

  • lun_id (String) - идентификатор Direct LUN.

  • port (String) - порт Direct LUN.

  • target (String) - цель (target) Direct LUN.

Optional
  • description (String) - описание Direct LUN.

  • shareable (Boolean) - включение/отключение опции "Совместное использование" Direct LUN.

  • wipe_after_delete (Boolean) - включение/отключение опции "очистка Direct LUN после удаления".

Read-Only
  • id (String) - уникальный идентификатор Direct LUN.

  • size (Number) - размер Direct LUN в байтах.

zvirt_disk
Примеры использования
resource "zvirt_disk" "disk" {
  alias             = "disk"
  size              = 10 * pow(1024, 3)
  format            = "cow"
  sparse            = true
  storage_domain_id = "78412f05-ab87-4b9c-94f7-d48fd1f8d0a8"
}
resource "zvirt_disk" "disk" {
  alias             = "disk"
  size              = 10 * pow(1024, 3)
  format            = "raw"
  sparse            = false
  storage_domain_id = "78412f05-ab87-4b9c-94f7-d48fd1f8d0a8"
}

Cхема

Required
  • alias (String) - альтернативное имя (алиас) диска.

  • size (Number) - размер диска в байтах.

  • storage_domain_id (String) - идентификатор домена хранения, в котором будет создан диск.

Optional
  • backup (String) - определяет настройки резервного копирования диска. Возможные значения: none, incremental. Значение по умолчанию none.

  • format (String) - формат диска. Возможные значения: cow или raw. Значение по умолчанию: cow.

  • shareable (Boolean) - возможность совместного использования диска. По умолчанию false.

  • sparse (Boolean) - определяет является ли диск динамически расширяемым. По умолчанию имеет значение true.

Read-Only
  • id (String) - уникальный идентификатор диска.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# VM can be imported using the ID
# Example:
terraform import zvirt_disk.disk 2481aa39-d0a4-4014-b2e3-6c0cc0784eab

Ограничения

Для корректного отключения управляемого диска от ВМ при удалении (destroy) диска, необходимо в ресурсе диска указать lifecycle = { create_before_destroy = true }. Диск будет корректно деинициализирован и удалён. Процесс включает два этапа: вначале производится отключение диска от виртуальной машины, после успешного завершения которого выполняется непосредственное удаление ресурса диска.

Пример использования
resource "zvirt_disk" "this" {
  alias             = "data"
  size              = 7 * 1024 * 1024 * 1024
  storage_domain_id = data.zvirt_storage_domain.this.id

  lifecycle {
    create_before_destroy = true
  }
}

resource "zvirt_vm" "this" {
  name        = "tf-import-test"
  cluster_id  = data.zvirt_cluster.this.id
  template_id = data.zvirt_template.this.id

  disk_attachment {
    id        = zvirt_disk.this.id
    interface = "virtio_scsi"
  }
}
zvirt_disk_attachment

Cхема

Required
  • disk_id (String) - идентификатор подключаемого диска.

  • interface (String) - тип интерфейса диска. Допустимые значения: virtio, virtio_scsi.

  • vm_id (String) - идентификатор виртуальной машины.

Read-Only
  • id (String) - составной идентификатор подключения диска (формат: vm_id/disk_attachment_id).

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Disk attachment can be imported using the composite ID: vm_id/disk_attachment_id
# Example:
terraform import zvirt_disk_attachment.example a1b2c3d4-e5f6-7890-abcd-ef1234567890/f9e8d7c6-b5a4-3210-fedc-ba0987654321
zvirt_disk_copy
Примеры использования
resource "zvirt_disk_copy" "disk" {
  parent            = "1f58bcd1-0762-4b72-8382-df115bfce2c1"
  alias             = "disk_copy"
  size              = 10 * pow(1024, 3)
  storage_domain_id = "78412f05-ab87-4b9c-94f7-d48fd1f8d0a8"
  backup            = "incremental"
}

Cхема

Required
  • alias (String) - альтернативное имя (алиас) диска.

  • parent (String) - идентификатор родительского диска.

  • size (Number) - размер диска в байтах.

  • storage_domain_id (String) - идентификатор домена хранения, в котором будет создан диск.

Optional
  • backup (String) - определяет настройки резервного копирования диска. Возможные значения: none, incremental. Значение по умолчанию none.

  • shareable (Boolean) - возможность совместного использования диска. По умолчанию false.

Read-Only
  • id (String) - уникальный идентификатор диска.

zvirt_external_network
Пример использования
resource "zvirt_external_network" "ext1" {
  name                      = "ovirtmgmt_sdn"
  provider_physical_network = "ovirtmgmt"
  datacenter_ids            = ["be8a3c37-873b-45da-8f95-9867d96daef6"]
}

Cхема

Required
  • datacenter_ids (String) - идентификаторы Центров данных, с которым связана внешняя сеть.

  • name (String) - имя внешней сети.

  • provider_physical_network (String) - имя физической сети.

Optional
  • mtu (Number) - максимальный передаваемый блок (MTU) для сети.

  • port_security_enabled (Boolean) - включение/отключение поддержки групп безопасности. По умолчанию поддержка отключена.

  • vm_network (Boolean) - включение/отключение использования внешней сети в качестве сети ВМ. По умолчанию имеет значение true.

Read-Only
  • id(String) - уникальный идентификатор внешней сети.

  • vnic_profile_id (String) - идентификатор профиля сетевого интерфейса (vNIC).

    Поддерживается только один профиль vNIC.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# External network can be imported using the ID
# Example:
terraform import zvirt_external_network.this 788713e6-a927-4952-8633-fe739c683b07
zvirt_logical_network
Пример использования
resource "zvirt_logical_network" "this" {
  name           = "logical_network_1"
  datacenter_ids = ["cfc9971f-b692-4f1d-8ef8-553ea17fb808"]
}

Cхема

Required
  • datacenter_ids (String) - идентификаторы Центров данных, с которым связана сеть.

  • name (String) - имя логической сети.

Optional
  • mtu (Number) - максимальный передаваемый блок (MTU) для сети. По умолчанию иммет значание 1442.

  • port_security_enabled (Boolean) - включение/отключение поддержки групп безопасности. По умолчанию имеет значение false.

Read-Only
  • id (String) - уникальный идентификатор логической сети.

  • vnic_profile_id (String) - идентификатор профиля сетевого интерфейса (vNIC).

    Поддерживается только один профиль vNIC.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Network can be imported using the ID
# Example:
terraform import zvirt_logical_network.this 788713e6-a927-4952-8633-fe739c683b07
zvirt_router
Пример использования
# Маршрутизатор
resource "zvirt_router" "router" {
  name = "router_1"
}

# Маршрутизатор со шлюзом по умолчанию
resource "zvirt_router" "router_with_gateway" {
  name = "router_2"

  gateway {
    network_id = "dda9c7d7-bf2c-41e9-b96f-6454a0bd6e88"
    external_fixed_ips {
      ip_address = "192.168.0.200"
      subnet_id  = "56d5dcfe-f20d-40c1-82fc-67f9f4f83c50"
    }
    gateway_chassis {
      chassis_name = "host-01.example.com"
      priority     = 0
    }
  }
}

# Маршрутизатор с интерфейсом
resource "zvirt_router" "router_with_interface" {
  name = "router_3"

  interface {
    subnet_id = "b2a43abb-7111-442d-838c-4f241f447473"
  }
}

# Маршрутизатор с правилами трансляции (NAT)
resource "zvirt_router" "router_with_nat_rule" {
  name = "router_4"

  gateway {
    network_id = "dda9c7d7-bf2c-41e9-b96f-6454a0bd6e88"
    external_fixed_ips {
      ip_address = "192.168.0.200"
      subnet_id  = "56d5dcfe-f20d-40c1-82fc-67f9f4f83c50"
    }
    gateway_chassis {
      chassis_name = "host-01.example.com"
      priority     = 0
    }
  }

  interface {
    subnet_id = "b2a43abb-7111-442d-838c-4f241f447473"
  }

  nat_rule {
    type        = "dnat"
    external_ip = "192.168.0.201"
    logical_ip  = "10.0.0.100"
  }
}

Cхема

Required
  • name (String) - имя маршрутизатора.

Optional
Read-only
  • id(String) - уникальный идентификатор маршрутизатора.

Вложенная схема gateway
Optional
  • external_fixed_ips (Block, Optional) - внешний статический IP-адрес маршрутизатора (см. вложенную схему ниже).

  • gateway_chassis (Block List) - список шасси шлюза маршрутизатора. Необходимо указать 1 (одиночный экземпляр) или 3 и более (режим высокой доступности) (см. вложенную схему ниже).

  • network_id (String) - идентификатор сети для определения шлюза маршрутизатора.

Вложенная схема external_fixed_ips
Optional
  • ip_address (String) - внешний IP-адрес.

  • subnet_id (String) - идентификатор подсети, к которой принадлежит IP-адрес.

Вложенная схема gateway_chassis
Optional
  • chassis_name (String) - имя шасси шлюза.

  • priority (Number) - приоритет шасси шлюза.

Вложенная схема interface
Required
  • subnet_id (String) - уникальный идентификатор подсети.

Вложенная схема nat_rule
Required
  • external_ip (String) - внешний IP-адрес трансляции.

  • logical_ip (String) - внутренний IP-трансляции.

  • type (String) - тип правила трасляции (имеет значение nat,snat,dnat).

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Router can be imported using the ID
# Example:
terraform import zvirt_router.this 788713e6-a927-4952-8633-fe739c683b07
zvirt_security_group
Пример использования
resource "zvirt_security_group" "this" {
  name        = "security_group_1"
  description = "Security group 1"
}

Cхема

Required
  • name (String) - имя группы безопасности.

Optional
  • description (String) - описание группы безопасности.

Read-only
  • id(String) - уникальный идентификатор группы безопасности.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Security group can be imported using the ID
# Example:
terraform import zvirt_security_group.this 788713e6-a927-4952-8633-fe739c683b07
zvirt_security_rule
Пример использования
# Single port example (defaults: action=ALLOW, priority=1, enabled=true)
resource "zvirt_security_rule" "allow_ssh" {
  security_group_id = zvirt_security_group.main.id
  name              = "allow_ssh"
  direction         = "INGRESS"
  protocol          = "TCP"
  port              = 22
  remote_ip_prefix  = "10.0.0.0/24"
}

# Port range example
resource "zvirt_security_rule" "allow_k8s_nodeports" {
  security_group_id = zvirt_security_group.main.id
  name              = "allow_k8s_nodeports"
  direction         = "INGRESS"
  protocol          = "TCP"
  port_range        = "30000-32767"
  remote_group_id   = zvirt_security_group.k8s_nodes.id
}

# ICMP example (without ports)
resource "zvirt_security_rule" "allow_icmp" {
  security_group_id = zvirt_security_group.main.id
  name              = "allow_icmp"
  direction         = "INGRESS"
  protocol          = "ICMP"
  remote_ip_prefix  = "0.0.0.0/0"
}

# Egress DROP rule
resource "zvirt_security_rule" "block_external" {
  security_group_id = zvirt_security_group.main.id
  name              = "block_external"
  direction         = "EGRESS"
  remote_ip_prefix  = "0.0.0.0/0"
  action            = "DROP"
}

Cхема

Required
  • direction (String) - направление трафика. Допустимые значения - «INGRESS» (входящий) или «EGRESS» (исходящий).

  • name (String) - имя правила безопасности.

  • security_group_id (String) - идентификатор группы безопасности, к которой принадлежит данное правило.

Optional
  • action (String) - действие, которое необходимо выполнить. Допустимые значения: 'ALLOW' (разрешить), 'DROP' (отбросить), 'REJECT' (отклонить). Значение по умолчанию — 'ALLOW'.

  • description (String) - описание группы безопасности.

  • enabled (Boolean) - определяет, включено ли правило. По умолчанию имеет значение true.

  • port (Number) - номер порта. Используется только с протоколами TCP, UDP, SCTP, DCCP или UDPLITE. Нельзя использовать одновременно с полем 'port_range'.

  • port_range (String) - диапазон портов, заданный в виде пары значений "минимальный-максимальный" (например, '10250-10255'). Используется только с протоколами TCP, UDP, SCTP, DCCP или UDPLITE. Нельзя использовать одновременно с полем 'port'.

  • priority (Number) - приоритет правила безопасности. Для действия 'ALLOW': 1 или 2. Для действий 'DROP'/'REJECT': 3 или 4. Значение по умолчанию — 1.

  • protocol (String) - протокол, на основании которого будет осуществляться фильтрация трафика. Поддерживаемые значения: AH, DCCP, EGP, ESP, GRE, ICMP, IGMP, IPIP, OSPF, PGM, RSVP, SCTP, TCP, UDP, UDPLITE, VRRP.

  • remote_address_pool_id (String) - идентификатор адрес-пула. Не может использоваться одновременно с параметрами remote_group_id и remote_ip_prefix.

  • remote_group_id (String) - идентификатор группы назначения или источника. Не используется совместно с параметром remote_ip_prefix.

  • remote_ip_prefix (String) - адреса источников или назначения в формате IP-адрес/число бит в маске подсети(например,'10.0.0.0/24). Не используется совместно с параметром remote_group_id.

Read-only
  • id(String) - уникальный идентификатор правила безопасности.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Import a security rule using the format: security_group_id/rule_id
terraform import zvirt_sdn_security_rule.allow_ssh "f9525c09-e588-4f40-bc0c-3148648984c1/d7a2f8b3-f718-4904-9aff-59ac952596b7"
zvirt_subnet
Пример использования
resource "zvirt_subnet" "this" {
  name            = "subnet_1"
  cidr            = "10.0.0.0/24"
  network_id      = "847387b0-8749-4def-8c0a-efc6317f9584"
  gateway_ip      = "10.0.0.1"
  dns_nameservers = ["8.8.8.8"]
}

Cхема

Required
  • cidr (String) - CIDR-префикс подсети.

  • gateway_ip (String) - IP-адрес шлюза для подсети.

  • name (String) - название логической подсети.

  • network_id (String) - идентификатор логической сети, к которой принадлежит подсеть.

Optional
  • dns_nameservers (List of String) - список DNS-серверов для подсети.

Read-Only
  • id (String) - уникальный идентификатор подсети.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# Subnet can be imported using the ID
# Example:
terraform import zvirt_subnet.this c4b5f514-f011-4718-b2ea-8ec4cb8aed43
zvirt_vm

Ресурс zvirt_vm используется для управления жизненным циклом виртуальной машины.

Функция определения необходимости перезагрузки

Ресурс zvirt_vm поддерживает вычисляемый атрибут reboot_required, который автоматически определяет, когда изменения конфигурации ВМ требуют перезагрузки для вступления в силу.

В рамках работы данной функции terraform-провайдер сравнивает планируемые изменения с текущим состоянием и устанавливает reboot_required = true, если обнаруживается любое из следующих изменений:

  • Изменения конфигурации ЦП:

    • cpu_sockets- количество сокетов ЦП

    • cpu_cores - количество ядер ЦП на сокет

    • cpu_threads - количество потоков ЦП на ядро

  • Изменения конфигурации памяти:

    • memory - объем выделенной памяти.

    • max_memory - максимальный лимит памяти.

    • guaranteed_memory - гарантированный объем памяти.

    • ballooning - настройка перераспределения памяти.

  • Изменение параметров HA виртуальной машины.

  • Изменения подключений дисков:

    • Добавление/удаление дисков с интерфейсами, не поддерживающими горячую замену (все интерфейсы, кроме virtio или virtio_scsi).

    • Изменение свойств подключения диска, включая изменение атрибута interface, означающего смену типа используемого интерфейса диска.

  • Изменения параметров инициализации:

    • имя хоста.

    • конфигурация DNS (DNS-серверы, параметры поиска).

    • конфигурация аутентификации (Имя пользователя, SSH-ключи).

    • пользовательские скрипты.

    • конфигурация сетевых интерфейсов (NIC).

  • Изменения связанные с ОС

    • os_type - тип операционной системы.

    • bios_type - тип BIOS.

    • tpm_enabled - включение поддержки TPM (Trusted Platform Module).

Изменения, НЕ требующие перезагрузки:

  • name- имя виртуальной машины.

  • description - описание виртуальной машины.

  • comment- комментарий к виртуальной машине.

  • power_state - состояние питания (включена/выключена/run_on_create).

  • resume_behaviour - действие при переходе ВМ в статус "Приостановлено".Список допустимых значений: auto_resume, kill, leave_paused.

  • lease_storage_domain_id - идентификатор домена хранения для аренды.

  • delete_protected - атрибут защиты от удаления виртуальной машины.

  • disk attachments:

    • Добавление/удаление подключений дисков с поддержкой горячего подключения (интерфейсы virtio или virtio_scsi).

    • Изменение размера нативных дисков (только увеличение).

    • Изменение свойства active для подключений дисков.

    • Изменение атрибутов резервного копирования нативных дисков.

  • Изменения сетевых интерфейсов:

    • добавление/удаление сетевых интерфейсов (NIC).

    • изменение свойств сетевого интерфейса (имя, тип интерфейса, профиль vNIC).

    • управление портами SDN.

Функция защиты от перезагрузки

Terraform поддерживает атрибут reboot_protected, который запрещает перезагрузку виртуальной машины (ВМ). Если вносимые изменения требуют перезагрузки и параметр reboot_required установлен с значением true, Terraform проверяет значение параметра reboot_required на соответствие plan.reboot_protected. Если в плане значение параметра установлено reboot_protected = true, то применение изменений завершится ошибкой. В сообщении об ошибке будет указано, какие изменения требуют перезагрузки и почему она была предотвращена. Для применения изменений, требующих перезагрузки, вам потребуется установить значение параметра reboot_protected в false.

Функция управления дисками

Ресурс zvirt_vm поддерживает динамические блоки disk_attachment, которые позволяют пользователям управлять дисками, подключенными к виртуальной машине. Диски разделены на логические группы: нативные и управляемые подключения дисков.

Нативное подключение диска относится к дискам, которые либо унаследованы от шаблона, либо вручную подключены к виртуальной машине. Для взаимодействия с этими дисками используется атрибут alias.

Управляемое подключение диска относится к дискам, которые были подключены к виртуальной машине через Terraform. Для взаимодействия с этими дисками используется атрибут id.

Атрибуты id и alias являются взаимоисключающими.

Нативные диски поддерживают атрибут size, который позволяет пользователям изменять их размер. Предполагается, что размер управляемых дисков изменяется с помощью собственного ресурса.

Terraform игнорирует диски, унаследованные от шаблона или подключенные вручную, до тех пор, пока они не появятся в манифесте. После того как вы указали их в манифесте и применили его, Terraform начинает их отслеживать.

Ограничения

  • Для нативных дисков:

    • Отключение диска средствами Terraform невозможно. Для осуществления операции рекомендуется предварительно отсоединить диск посредством веб-интерфейса или ZVirt API, исключить соответствующую запись из Terraform-манифеста и применить изменения командой terraform apply для фиксации изменений в файле состояния;

    • Невозможно уменьшить размер диска;

    • Поскольку в качестве уникального идентификатором выступает alias, использование дисков с совпадающими псевдонимами внутри одной виртуальной машины не поддерживается;

    • Процесс обработки манифеста Terraform завершится ошибкой, если клиент не сможет обнаружить нужный нативный диск по указанному псевдониму(alias).

  • Для управляемых дисков:

    • Изменение размера диска недоступно для управляемых дисков.

Пример использования
resource "zvirt_vm" "vm" {
  name        = "vm"
  cluster_id  = data.zvirt_cluster.default.id
  template_id = data.zvirt_template.astra.id
}

resource "zvirt_vm" "this" {
  name        = "vm"
  power_state = "down"
  cluster_id  = "de88de15-4569-4869-97c8-93196777ddf2"
  template_id = "5ab7e2f4-35d1-465a-a6b9-14f23823dfc5"

  folder_path = "/fold1/fold2"
}
resource "zvirt_vm" "this2" {
  name        = "vm2"
  power_state = "down"
  cluster_id  = "de88de15-4569-4869-97c8-93196777ddf2"
  template_id = "5ab7e2f4-35d1-465a-a6b9-14f23823dfc5"

  folder_id = "671ef74d-1615-49e7-942f-7240acd89e77"
}

Дополнительно см. Примеры использования.

Cхема

Required
  • cluster_id (String) - идентификатор кластера, в котором будет развернута виртуальная машина.

  • name (String) - имя виртуальной машины.

  • template_id (String) - идентификатор шаблона, на основе которого создана виртуальная машина.

Optional
  • affinity_group_ids (Set of String) - набор идентификаторов групп сходства, к которым принадлежит данная виртуальная машина. Виртуальная машина и группы сходства должны находиться в одном кластере.

  • ballooning (Boolean) - включение или отключение перераспределения памяти для виртуальной машины. Значение по умолчанию зависит от политики кластера.

  • bios_type (String) - тип BIOS для виртуальной машины.

    Cписок допустимых значений:

    • q35_sea_bios,

    • q35_ovmf,

    • q35_secure_boot.

  • clone (Boolean) - определяет будет ВМ создана как тонкий или независимый клон.

    При создании виртуальной машины из шаблона Blank необходимо явно указать параметр клонирования clone = true. Создание тонких (thin-provisioned) клонов из данного шаблона не поддерживается.
  • comment (String) - комментарий к виртуальной машине.

  • cpu_cores (Number) - количество ядер ЦП на сокет для виртуальной машины. Наследуется из шаблона, если не указано.

  • cpu_sockets (Number) - количество сокетов ЦП для виртуальной машины. Наследуется из шаблона, если не указано.

  • cpu_threads (Number) - количество потоков ЦП на ядро для виртуальной машины. Наследуется из шаблона, если не указано.

  • delete_protected (Boolean) - указывает защищена ли виртуальная машина от удаления.

  • description (String) - описание виртуальной машины.

  • disk_attachment (Block Set) - набор дисков для подключения к виртуальной машине. (см. вложенную схему ниже).

  • folder_id (String) - идентификатор папки, которой принадлежит виртуальная машина.

  • folder_path (String) - путь к папке, которой принадлежит виртуальная машина.

  • guaranteed_memory (Number) - гарантированный объем памяти для виртуальной машины. Значение по умолчанию зависит от политики кластера.

  • high_availability (Boolean) - указывет включена ли для виртуальной машины функция высокой доступности.

  • initialization (Block, Optional) - настройки инициализации виртуальной машины. (см. вложенную схему ниже).

  • lease_storage_domain_id (String) - идентификатор домена хранения для аренды.

  • max_memory (Number) - максимальный объем памяти, который может быть выделен виртуальной машине. Значение по умолчанию зависит от политики кластера.

  • memory (Number) - объем памяти, выделенный виртуальной машине. Наследуется из шаблона, если не указано.

  • nic (Block Set) - набор сетевых интерфейсов для подключения к виртуальной машине.

  • os_type (String) - тип операционной системы для виртуальной машины.

    Список допустимых значений
    Типы ОС Windows:
    • windows_xp,

    • windows_2003,

    • windows_2003x64,

    • windows_7,

    • windows_7x64,

    • windows_2008,

    • windows_2008x64,

    • windows_2008R2x64,

    • windows_8,

    • windows_8x64,

    • windows_2012x64,

    • windows_2012R2x64,

    • windows_10,

    • windows_10x64,

    • windows_2016x64,

    • windows_2019x64,

    • windows_11,

    • windows_2022,

    • windows_2025.

    Типы ОС Unix
    • other,

    • other_linux,

    • rhel_3,

    • rhel_3x64,

    • rhel_4,

    • rhel_4x64,

    • rhel_5,

    • rhel_5x64,

    • rhel_6,

    • rhel_6x64,

    • rhel_7,

    • rhel_7x64,

    • rhel_8,

    • rhel_8x64,

    • rhel_9,

    • rhel_9x64,

    • rhel_10,

    • rhcos_x64,

    • rhel_atomic7x64,

    • znode,

    • redos_7,

    • redos_8,

    • astra_linux,

    • astra_linux_se_1_7,

    • astra_linux_se_1_8,

    • alt_linux,

    • alt_srv_10,

    • alt8sp_srv_10,

    • alt_education_10,

    • alt_ws_10,

    • alt8sp_ws_10,

    • alt_ws_k_10,

    • alt_srv_11,

    • alt_education_11,

    • alt_ws_11,

    • alt_ws_k_11,

    • rosa_linux,

    • rosa_12_srv,

    • rosa_12_srv_fstek,

    • rosa_12_ws,

    • rosa_12_ws_fstek,

    • msvsphere_9,

    • msvsphere_10,

    • mosos_15,

    • sberos_8,

    • selectos_1,

    • sles_11,

    • sles_12,

    • sles_15,

    • ubuntu_12_04,

    • ubuntu_12_10,

    • ubuntu_13_04,

    • ubuntu_13_10,

    • ubuntu_14_04,

    • ubuntu_18_04,

    • ubuntu_22_04,

    • ubuntu_24_04,

    • ubuntu_24_10,

    • ubuntu_25_04,

    • debian_7,

    • debian_9,

    • debian_10,

    • debian_11,

    • debian_12,

    • freebsd,

    • freebsdx64,

    • freebsd_14,

    • openbsd_7,

    • centos_8,

    • centos_9,

    • centos_10,

    • alma_9,

    • alma_10.

  • persist_initialization (Boolean) - если true, параметры инициализации сохраняются для виртуальной машины, и ВМ не запускается в режиме run-once.

  • power_state (String) - состояние питания виртуальной машины. Возможные значения: up, down или run_on_create.

  • power_up_delay (Number) - задержка в секундах перед запуском (включением питания) виртуальной машины. По умолчанию установлено значение 5 секунд.

  • reboot_protected (Boolean) - определяет состояние функции защиты от перезагрузки (включена или отключена).

  • resume_behaviour (String) - поведение виртуальной машины при возникновении ошибки хранилища. Имеет следующие значения: auto_resume, kill, leave_paused.

  • tpm_enabled (Boolean) - определяет, активирован ли модуль TPM на виртуальной машине.

Read-Only
  • id (String) - уникальный идентификатор виртуальной машины.

Вложенная схема disk_attachment
Required
  • interface (String) - тип интерфейса для диска. Допустимые значения: virtio, virtio_scsi.

Optional
  • alias (String) - альтернативное имя (алиас) подключенного диска.

  • id (String) - идентификатор требуемого диска.

  • backup (String) - резевная копия подключенного диска.

  • size (Number) - размер подключенного диска.

  • storage_domain_id (String) - идентификатор домена хранения для диска.

Read-only
  • active (Boolean) - определяет, активен ли диск. По умолчанию: true. В настоящее время только для чтения.

Вложенная схема initialization

Механизм инициализации функционирует исключительно с использованием Cloud Init и не предусматривает совместимости с технологией Sysprep.

Optional
  • active_directory_ou (String) - подразделение Active Directory (OU), в которое следует поместить виртуальную машину (ВМ). Используется для виртуальных машин с операционными системами семейства Windows.

  • authorized_ssh_keys (Set of String) - авторизованные SSH-ключи для виртуальной машины

  • custom_script (String) - пользовательский скрипт, выполняемый на виртуальной машине.

  • dns_search (String) - домен поиска DNS для виртуальной машины.

  • dns_servers (Set of String) - DNS-серверы для виртуальной машины.

  • domain (String) - домен Windows, к которому присоединяется виртуальная машина во время инициализации. Используется для присоединения к домену Active Directory.

  • hostname (String) - имя хоста виртуальной машины.

  • nic_configuration (Block Set) - конфигурация сетевых интерфейсов (см. вложенную схему ниже).

  • org_name (String) - название организации для инициализации виртуальной машины Windows. Используется во время процесса sysprep для установки организации.

  • username (String) - имя пользователя виртуальной машины.

Вложенная схема initialization.nic_configuration

Параметр boot_protocol_dhcp настраивает сетевой интерфейс на использование DHCP и конфликтует со статическими параметрами: ip_address, netmask, gateway и version.

Провайдер в настоящее время поддерживает только конфигурацию IPv4.

Required
  • name (String) - имя сетевого интерфейса в гостевой ОС.

Optional
  • boot_protocol_dhcp (Boolean) - использование DHCP для сетевого интерфейса.

  • gateway (String) - шлюз для сетевого интерфейса.

  • ip_address (String) - IP-адрес сетевого интерфейса.

  • netmask (String) - маска подсети для сетевого интерфейса.

  • on_boot (Boolean) - активировация сетевого интерфейса при загрузке.

  • version (String) - версия адресации для сетевого интерфейса. Допустимое значение: v4

Вложенная схема nic
Required
  • interface (String) - тип сетевого интерфейса для сетевой карты. Допустимые значения: virtio, e1000, e1000e, rtl8139. По умолчанию: virtio.

  • name (String) - имя сетевого интерфейса.

  • vnic_profile_id (String) - идентификатор профиля vNIC для подключения к сетевому интерфейсу.

    Поддерживается только один профиль vNIC.
Optional
  • sdn_port (Block Set) - конфигурация порта SDN для сетевого интерфейса. Позволяет настраивать группы безопасности и статическое назначение IP-адресов (см. вложенную схему ниже).

Вложенная схема sdn_port
Optional
  • fixed_ip (Block Set) - настройка фиксированного IP-адреса для порта SDN. Если не указана, используется DHCP (см. вложенную схему ниже).

  • mac_learning (Boolean) - включение или отключение функции запоминания MAC-адресов для сетевой карты.

  • security_group_ids (Set of String) - Набор идентификаторов групп безопасности, назначаемых данному порту SDN. Если не указан, по умолчанию принимается пустой набор.

  • security_groups_enabled (Boolean) - поддержка групп безопасности для порта SDN. По умолчанию установлено значение false.

Вложенная схема fixed_ip
Required
  • ip_address (String) - IP-адрес, который необходимо назначить. Если не указан, адрес автоматически выделяется из подсети.

  • subnet_id (String) - идентификатор подсети, из которой будет выделяться IP-адрес.

Import

Импорт поддерживается с использованием следующего синтаксиса:

# VM can be imported using the ID
# Example:
terraform import zvirt_vm.vm 668c7b9e-ae8b-422d-936b-8853de610e39
zvirt_vm_folder

Cхема

Required
  • name (String) - имя папки ВМ.

Optional
  • description (String) - описание папки ВМ.

  • parent_id (String) - идентификатор родительской папки ВМ.

  • parent_path (String) - путь к родительской папке виртуальной машины.

Read-only
  • id(String) - идентификатор папки ВМ.