Документация "Инферит Облако"

автоматизирует развертывание виртуальных машин на разных хостах — настраивает провайдер, генерирует конфигурацию Terraform, добавляет anti‑affinity правила и управляет состоянием инфраструктуры

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

Размещение инстанса на разных хостах

Подготовка

Ознакомитесь со статьей – Terraform быстрый старт.
Выполните все действия по настройке провайдера, составлению основных конфигурационных файлов.

Добавить описание ресурсов

Для реализации возможности размещения инстанса (ВМ) на разных хостах виртуализации (Анти-аффинити правило), необходимо выполнить следующее:

  • В ресурсе openstack_compute_instance_v2 добавляется блок scheduler_hints;
  • different_host – конструкция, описывающая ID инстансов, которые должны находиться на разных хостах относительно друг друга и “не пересекаться”;

При создании новых ресурсов ID инстансов (c2f9cd3e-68c0-46c7-8aeb-927ecb41ce6e) заранее не известны, в связи с этим необходимо получать ID из ресурса, создающего другую ВМ openstack_compute_instance_v2.instance_win.id

  • Значений может быть множество, указываются в массиве через запятую.
    openstack_compute_instance_v2

    Пример создания 3-х инстансов (в первом примере используется конструкция анти-аффинити):

resource "openstack_compute_instance_v2" "instance" {
  name        = "instance"
  image_name  = "Ubuntu 22.04"
  flavor_name = "4vcpu.8ram"
  key_pair    = openstack_compute_keypair_v2.keypair.name

  scheduler_hints {
    different_host = [openstack_compute_instance_v2.instance_win.id,openstack_compute_instance_v2.instance_win2.id]
  }

  network {
    port = openstack_networking_port_v2.port.id
  }
}

resource "openstack_compute_instance_v2" "instance_win" {
  name        = "instance_win"
  image_name  = "MS Windows 11"
  flavor_name = "4vcpu.8ram"

  metadata = {
    admin_pass = "Qwe123#"
  }

  network {
    port = openstack_networking_port_v2.port2.id
  }
}

resource "openstack_compute_instance_v2" "instance_win2" {
  name        = "instance_win2"
  image_name  = "MS Windows 11"
  flavor_name = "4vcpu.8ram"

  metadata = {
    admin_pass = "Qwe123#"
  }

  network {
    port = openstack_networking_port_v2.port3.id
  }
}

Запуск развертывания

После добавления нового ресурса, стоит проверить корректность выполнения команды – terraform plan:

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the
following symbols:
  + create

  # openstack_compute_instance_v2.instance will be created

Удостоверившись, что ресурсы планируются создаться или удалиться, в зависимости от файла состояний, можно перейти к развертыванию:
terraform apply

Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.

Enter a value:

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

Если какие-то ресурсы удалены из кода, но они присутствуют в файле состояния, то они будут удалены!
Применяйте команду terraform plan осторожно, во избежание непредвиденных последствий!

 

Получить доступ в личный кабинет клиента
Публикации в СМИ
Подключить сервис
Получить демо-доступ
Получить консультацию