Ресурсы TF
zvirt_address_pool
Cхема
-
name(String) - имя адрес-пула.
-
addresses(Set of String) - адреса, входящие в адрес-пул. -
description(String) - описание адрес-пула. -
type(String) - тип адрес-пула.
-
id(String) - уникальный идентификатор адрес-пула.
zvirt_affinity_group
Cхема
-
cluster_id(String) - идентификатор кластера, к которому относится группа сходства (affinity). -
hosts_rule(Attributes) - правило сходства для хостов (см. вложенную схему ниже). -
name(String) - имя группы сходства. -
vms_rule(Attributes) - правило сходства (affinity) для виртуальных машин(см. вложенную схему ниже).
-
description(String) - описание группы сходства(affinity). -
host_labels(Set of String) - идентификаторы меток сходства хостов, прикреплённых к группе. -
hosts(Set of String) - идентификаторы хостов, прикреплённых к группе. -
priority(Number) - приоритет группы сходства (affinity).
-
id(String) - уникальный идентификатор группы сходства.
zvirt_affinity_label
Cхема
-
hosts(Set of String) - идентификаторы хостов, связанных с меткой сходства. -
name(String) - имя метки сходства.
-
force_remove_vms(Boolean) - принудительно удалить виртуальные машины из метки сходства.
-
id(String) - уникальный идентификатор метки сходства. -
vms(Set of String) - идентификаторы виртуальных машин, связанных с меткой сходства.
zvirt_direct_lun_fc
Cхема
-
alias(String) - псевдоним Direct LUN. -
lun_id(String) - идентификатор Direct LUN.
-
description(String) - описание Direct LUN. -
shareable(Boolean) - включение/отключение опции "Совместное использование" Direct LUN. -
wipe_after_delete(Boolean) - включение/отключение опции "очистка Direct LUN после удаления".
-
id(String) - уникальный идентификатор Direct LUN. -
size(Number) - размер Direct LUN в байтах.
zvirt_direct_lun_iscsi
Cхема
-
address(String) - адрес Direct LUN. -
alias(String) - псевдоним Direct LUN. -
lun_id(String) - идентификатор Direct LUN. -
port(String) - порт Direct LUN. -
target(String) - цель (target) Direct LUN.
-
description(String) - описание Direct LUN. -
shareable(Boolean) - включение/отключение опции "Совместное использование" Direct LUN. -
wipe_after_delete(Boolean) - включение/отключение опции "очистка Direct LUN после удаления".
-
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хема
-
alias(String) - альтернативное имя (алиас) диска. -
size(Number) - размер диска в байтах. -
storage_domain_id(String) - идентификатор домена хранения, в котором будет создан диск.
-
backup (String)- определяет настройки резервного копирования диска. Возможные значения:none,incremental. Значение по умолчаниюnone. -
format(String) - формат диска. Возможные значения:cowилиraw. Значение по умолчанию:cow. -
shareable(Boolean) - возможность совместного использования диска. По умолчанию false. -
sparse(Boolean) - определяет является ли диск динамически расширяемым. По умолчанию имеет значениеtrue.
-
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хема
-
disk_id(String) - идентификатор подключаемого диска. -
interface(String) - тип интерфейса диска. Допустимые значения: virtio, virtio_scsi. -
vm_id(String) - идентификатор виртуальной машины.
-
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хема
-
alias(String) - альтернативное имя (алиас) диска. -
parent(String) - идентификатор родительского диска. -
size(Number) - размер диска в байтах. -
storage_domain_id(String) - идентификатор домена хранения, в котором будет создан диск.
-
backup (String)- определяет настройки резервного копирования диска. Возможные значения:none,incremental. Значение по умолчаниюnone. -
shareable(Boolean) - возможность совместного использования диска. По умолчанию false.
-
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хема
-
datacenter_ids(String) - идентификаторы Центров данных, с которым связана внешняя сеть. -
name(String) - имя внешней сети. -
provider_physical_network(String) - имя физической сети.
-
mtu(Number) - максимальный передаваемый блок (MTU) для сети. -
port_security_enabled(Boolean) - включение/отключение поддержки групп безопасности. По умолчанию поддержка отключена. -
vm_network(Boolean) - включение/отключение использования внешней сети в качестве сети ВМ. По умолчанию имеет значениеtrue.
-
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хема
-
datacenter_ids(String) - идентификаторы Центров данных, с которым связана сеть. -
name(String) - имя логической сети.
-
mtu(Number) - максимальный передаваемый блок (MTU) для сети. По умолчанию иммет значание 1442. -
port_security_enabled(Boolean) - включение/отключение поддержки групп безопасности. По умолчанию имеет значениеfalse.
-
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хема
-
name(String) - имя маршрутизатора.
-
gateway(Block, Optional) - список параметров для шлюза (см. вложенную схему ниже). -
interface(Block Set) - набор параметров интерфейса маршрутизатора (см. вложенную схему ниже). -
nat_rule(Block Set) - набор параметров описывающих сетевые трансляции (см. вложенную схему ниже).
-
id(String) - уникальный идентификатор маршрутизатора.
Вложенная схема gateway
-
external_fixed_ips(Block, Optional) - внешний статический IP-адрес маршрутизатора (см. вложенную схему ниже). -
gateway_chassis(Block List) - список шасси шлюза маршрутизатора. Необходимо указать 1 (одиночный экземпляр) или 3 и более (режим высокой доступности) (см. вложенную схему ниже). -
network_id(String) - идентификатор сети для определения шлюза маршрутизатора.
Вложенная схема external_fixed_ips
-
ip_address(String) - внешний IP-адрес. -
subnet_id(String) - идентификатор подсети, к которой принадлежит IP-адрес.
Вложенная схема gateway_chassis
-
chassis_name(String) - имя шасси шлюза. -
priority(Number) - приоритет шасси шлюза.
Вложенная схема nat_rule
-
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хема
-
name(String) - имя группы безопасности.
-
description(String) - описание группы безопасности.
-
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хема
-
direction(String) - направление трафика. Допустимые значения - «INGRESS» (входящий) или «EGRESS» (исходящий). -
name(String) - имя правила безопасности. -
security_group_id(String) - идентификатор группы безопасности, к которой принадлежит данное правило.
-
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.
-
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хема
-
cidr(String) - CIDR-префикс подсети. -
gateway_ip(String) - IP-адрес шлюза для подсети. -
name(String) - название логической подсети. -
network_id(String) - идентификатор логической сети, к которой принадлежит подсеть.
-
dns_nameservers(List of String) - список DNS-серверов для подсети.
-
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
}
Дополнительно см. Примеры использования.
Cхема
-
cluster_id(String) - идентификатор кластера, в котором будет развернута виртуальная машина. -
name(String) - имя виртуальной машины. -
template_id(String) - идентификатор шаблона, на основе которого создана виртуальная машина.
-
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) - набор дисков для подключения к виртуальной машине. (см. вложенную схему ниже). -
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_2008x64,
-
windows_2008R2x64,
-
windows_8x64,
-
windows_2012x64,
-
windows_2012R2x64,
-
windows_10,
-
windows_10x64,
-
windows_2016x64,
-
windows_2019x64,
-
windows_11,
-
windows_2022.
Типы ОС Unix-
other,
-
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_9x64,
-
rhcos_x64,
-
rhel_atomic7x64,
-
znode,
-
redos_7,
-
astra_linux,
-
alt_linux,
-
rosa_linux,
-
sles_11,
-
ubuntu_12_04,
-
ubuntu_12_10,
-
ubuntu_13_04,
-
ubuntu_13_10,
-
ubuntu_14_04,
-
ubuntu_18_04,
-
debian_7,
-
debian_9,
-
freebsd,
-
freebsdx64.
-
-
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 на виртуальной машине.
-
id(String) - уникальный идентификатор виртуальной машины.
Вложенная схема disk_attachment
-
interface(String) - тип интерфейса для диска. Допустимые значения: virtio, virtio_scsi.
-
alias(String) - альтернативное имя (алиас) подключенного диска. -
id(String) - идентификатор требуемого диска. -
backup(String) - резевная копия подключенного диска. -
size(Number) - размер подключенного диска. -
storage_domain_id(String) - идентификатор домена хранения для диска.
-
active(Boolean) - определяет, активен ли диск. По умолчанию:true. В настоящее время только для чтения.
Вложенная схема initialization
Механизм инициализации функционирует исключительно с использованием Cloud Init и не предусматривает совместимости с технологией Sysprep.
-
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.
-
name(String) - имя сетевого интерфейса в гостевой ОС.
-
boot_protocol_dhcp(Boolean) - использование DHCP для сетевого интерфейса. -
gateway(String) - шлюз для сетевого интерфейса. -
ip_address(String) - IP-адрес сетевого интерфейса. -
netmask(String) - маска подсети для сетевого интерфейса. -
on_boot(Boolean) - активировация сетевого интерфейса при загрузке. -
version(String) - версия адресации для сетевого интерфейса. Допустимое значение: v4
Вложенная схема nic
-
interface(String) - тип сетевого интерфейса для сетевой карты. Допустимые значения: virtio, e1000, e1000e, rtl8139. По умолчанию: virtio. -
name(String) - имя сетевого интерфейса. -
vnic_profile_id(String) - идентификатор профиля vNIC для подключения к сетевому интерфейсу.Поддерживается только один профиль vNIC.
-
sdn_port(Block Set) - конфигурация порта SDN для сетевого интерфейса. Позволяет настраивать группы безопасности и статическое назначение IP-адресов (см. вложенную схему ниже).
Вложенная схема sdn_port
-
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
-
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хема
-
name(String) - имя папки ВМ. -
parent_id(String) - идентификатор родительской папки ВМ.
-
description(String) - описание папки ВМ.
-
id(String) - идентификатор папки ВМ.