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

Начало работы

Terraform-провайдера zVirt используется для взаимодействия с компонентами платформы виртуализации zVirt начиная с версии 4.3.

Подробная информацию о ресурсах провайдера представлена на вкладке Ресурсы TF.

Рекомендуется использовать версию Terraform не ниже 1.5.

1. Особенности

  • Опции инициализации не имеют реализованных средств глубокой валидации.

  • Параметр state отрабатывается всеми ресурсами индивидуально. Обилие изменений, требующих перезагрузки, способно привести к многократному перезапуску виртуальной машины.

  • Миграция ВМ осуществляется через перезапуск ВМ с выбором целевого кластера.

  • Механизмы инициализации срабатывают только для одного сетевого интерфейса. Интерфейс определяется по имени внутри гостевой ОС и должен быть известен заранее.

  • Получение IP-адреса реализовано через источник данных(data source) ovirt_wait_for_ip и может занимать значительное время. В случаи использования одного сетевого интерфейса рекомендуется использовать механизм инициализации(cloud-init).

2. Схема

terraform {
  required_version = ">= 1.5.0"
  required_providers {
    ovirt = {
      source  = "ovirt/ovirt"
      version = ">= 2.1.5"
    }
  }
}

provider "ovirt" {
  url          = "${var.zvirt_url}/api"
  username     = var.zvirt_username
  password     = var.zvirt_password
  tls_insecure = true
}
Обязательные параметры (или аргументы):
  1. url(String) - URL-адрес для подключения к API.

  2. username(String) - имя пользователя и пространство имён (реалм) в zVirt.

    Например: admin@zvirt@internalsso

  3. password(String,Sensitive) - пароль пользователя в zVirt.

  4. tls_insecure(Boolean) - отключает проверку сертификата при подключении к zVirt.

Дополнительные параметры (или аргументы):
Параметры tls_ca_bundle, tls_ca_dirs, tls_ca_files взаимозаменяемы.
  1. tls_ca_bundle(String) - активирует проверку сертификата Engine по предоставленным сертификатам CA. Передаваемая цепочка сертификатов должна быть в формате PEM.

    Например: tls_ca_bundle = var.ovirt_ca

  2. tls_ca_dirs(List of String) - активирует проверку сертификата Engine на соответствие сертификатам CA, предоставленным в указанных каталогах. Каталог должен содержать только файлы с сертификатами в формате PEM.

    Например: tls_ca_dirs = ["/etc/pki/"]

  3. tls_ca_files(List of String) - активирует проверку сертификата Engine на соответствие сертификатам CA, предоставленным в файлах, указанных в этом параметре. Файлы должны содержать сертификаты в формате PEM.

    Например: tls_ca_files = ["/etc/pki/root_ca.pem", "/etc/pki/intermediate_ca.pem"]

3. Дополнительная подготовка

Для работы с провайдером необходимо использовать учетную запись admin@zvirt.

4. Установка и запуск Linux

Поддерживаются актуальные дистрибутивы семейства RedHat и Ubuntu\ Debian и аналоги.
  1. Скачайте дистрибутив Terraform и установите его согласно инструкции для используемой ОС.

  2. В домашней директории пользователя, который будет использовать Terraform, создайте следующий каталог и все промежуточные подкаталоги:

    1. ~/.terraform.d/plugins/registry.terraform.io/ovirt/ovirt/2.1.5/linux_amd64/

  3. Скопируйте полученный бинарный файл провайдера в созданный каталог (linux_amd64) под именем terraform-provider-ovirt_2.1.5

  4. Создайте каталог для проверки провайдера. В нем создайте Terraform-манифест следующего содержания:

    terraform {
      required_version = ">= 1.5.0"
      required_providers {
        ovirt = {
          source  = "ovirt/ovirt"
          version = ">= 2.1.5"
        }
      }
    }
  5. Выполните команду terraform init в тестовом каталоге. Игнорируйте сообщения о неподписанном пакете.