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

Ресурсы TF

ovirt_znic_attachment
Пример использования
Перед сменой типа подключения диска необходимо проверить, что данная архитектура шаблона допускает такую возможность. Рекомендуется придерживаться virtio-вариантов.
resource "ovirt_znic_attachment" "nic"{
   vnic_profile_id = data.ovirt_vnic_profile.vnic.id
   vm_id           = ovirt_zvm.vm.id
   name            = "nic10"
}
Cхема
  1. name(String) - имя сетевой карты.

  2. vm_id(String) - идентификатор виртуальной машины, к которой нужно подключить эту сетевую карту

  3. vnic_profile_id(String) - идентификатор профиля VNIC, который нужно связать с этой сетевой картой

ovirt_zdisk_attachment
Доступность запрашиваемого объема дискового пространства в выбранном хранилище не проверяется сразу. Проверка выполняется только в момент создания диска, когда происходит исполнение манифеста.
Пример использования
resource "ovirt_zdisk_attachment" "disk_attach" {
  vm_id          = ovirt_zvm.vm.id
  disk_id        = ovirt_zdisk.disk.id
  disk_interface = "virtio_scsi"
}
Ресурс ovirt_disk_attachment` прикрепляет один диск к одной ВМ. Для управления несколькими прикреплениями используйте ovirt_disk_attachments.
Cхема
  1. vm_id(String) - идентификатор ВМ, к которой должен быть подключен диск.

  2. disk_id(String) - идентификатор диска, который необходимо присоединить. Этот диск должен быть либо общим, либо не должен быть прикрепленным к другой ВМ.

  3. disk_interface(String) - тип интерфейса, который будет использоваться для подключения диска. Доступны следующие типы интерфейсов - ide, sata, spapr_vscsi, virtio, virtio_scsi.

  4. active(Boolean) - определяет, является ли диск активным в виртуальной машине, к которой он подключен.

  5. bootable(Boolean) - определяет, является ли диск загружаемым.

ovirt_zdisk
Пример использования
resource "ovirt_zdisk" "disk" {
  storage_domain_id = data.ovirt_storage_domain.storage.id
  format            = "cow"
  size              = 3 * 1024 * 1024
  alias             = "terraform_disk"
  sparse            = true
}
Cхема
  1. storage_domain_id(String) - идентификатор домена хранения, в котором будет создан диск.

  2. format(String) - формат диска, доступны два варианта .cow и .raw.

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

  4. alias(String) - человекочитаемый псевдоним для диска.

  5. sparse(Boolean) - использовать распределение ресурсов для диска.

ovirt_disk_attachments

Использование данного ресурса позволяет добавить несколько ранее созданных дисков к ВМ.

Пример использования
resource "ovirt_zdisk" "disk1" {
  alias             = "disk1"
  size              = 1 * pow(1024, 3)
  sparse            = true
  format            = "cow"
  storage_domain_id = data.ovirt_storage_domain.storage.id
}
resource "ovirt_zdisk" "disk2" {
  alias             = "disk2"
  size              = 1 * pow(1024, 3)
  sparse            = true
  format            = "cow"
  storage_domain_id = data.ovirt_storage_domain.storage.id
}

resource "ovirt_zvm" "nexus_vm" {
  name                      = var.nexus_name
  cluster_id                = data.ovirt_cluster.cluster.id
  template_id               = tolist(data.ovirt_templates.template.templates)[0].id
  state                     = "down"
  cpu_sockets               = var.nexus_cpu_sockets
  cpu_cores                 = var.nexus_cpu_cores
  cpu_threads               = var.nexus_cpu_threads
  memory                    = var.nexus_ram * pow(1024, 3)
  maximum_memory            = var.nexus_ram * pow(1024, 3)
  boot_disk_size            = var.nexus_boot_disk * pow(1024, 3)
  placement_policy_host_ids = []
  os_type                   = var.nexus_os_type
}

resource "ovirt_disk_attachments" "disk_attachs" {
  vm_id = ovirt_zvm.nexus_vm.id
  attachment {
    disk_id        = ovirt_zdisk.disk1.id
    disk_interface = "virtio_scsi"
  }
  attachment {
    disk_id        = ovirt_zdisk.disk2.id
    disk_interface = "sata"
  }
}
Cхема
  1. vm_id(String) - идентификатор ВМ, к которой должен быть подключен диск.

  2. attachment(Set of Object) - содержит параметры, добавляемых дисков.

    1. disk_id(String) - идентификатор диска, который необходимо присоединить. Этот диск должен быть либо общим, либо не должен быть прикрепленным к другой ВМ.

    2. disk_interface(String) - тип интерфейса, который будет использоваться для подключения диска. Доступны следующие типы интерфейсов - ide, sata, spapr_vscsi, virtio, virtio_scsi.

ovirt_zvm
  • При старте виртуальной машины невозможно заранее определить, допустим ли её запуск на конкретном кластере — например, исходя из ограничений по памяти или иным параметрам. Проверка осуществляется непосредственно в ходе выполнения манифеста во время старта ВМ.

  • Поддержка гарантированной памяти при создании ВМ не реализована, рекомендуется всегда использовать уравненное значение memory и max_memory.

Пример использования
resource "ovirt_zvm" "vm" {
  cluster_id      = data.ovirt_cluster.cluster.id
  name            = "terraform_vm"
  template_id     = tolist(data.ovirt_templates.template.templates)[0].id
  state           = "run_on_create"
  os_type         = "znode"
  boot_disk_size  = 1 * 1024 * 1024 * 1024
  maximum_memory  = 2 * 1024 * 1024 * 1024
  memory          = 1 * 1024 * 1024 * 1024
  cpu_cores       = 1
  description     = "desc"
  comment         = "comment"
  initialization {
    hostname    = var.vm_count > 1 ? "example1-vm-${count.index}" : "example1-vm"
    dns_servers = "8.8.8.8 8.8.4.4"
    nic_configuration {
      name = "enp1s0"
      boot_protocol = "static"
      ip {
        address = "192.168.0.1"
        mask = "255.255.255.0"
        gateway = "192.168.0.254"
        version = "v4"
      }
    }
  }
}
Cхема
  1. cluster_id(String)- идентификатор кластер, на котором будет создана эта ВМ.

  2. name(String)- имя ВМ, заданное пользователем. Должно состоять только из строчных и прописных букв, цифр, тире, подчеркивания и точки.

  3. template_id(String)- идентификатор базового шаблон для этой ВМ.

  4. cpu_cores(Number) - количество ядер процессора, выделяемых для ВМ.

  5. maximum_memory (Number) - максимальный объем памяти, выделяемый ВМ в байтах.

  6. memory (Number) - память, выделяемая ВМ в байтах.

  7. os_type (String) - тип операционной системы.

  8. comment (String) - пользовательский комментарий для ВМ.