Создание двух виртуальных машин в одной и той же группе ресурсов без Terraform, желающего уничтожить первую - PullRequest
0 голосов
/ 07 мая 2019

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

Я следовал руководству Terraform: https://www.terraform.io/docs/providers/azurerm/r/virtual_machine.html

resource "azurerm_virtual_machine" "main" {
  location = "${var.location}"
  name = "${var.vm_name}"
  network_interface_ids = ["${azurerm_network_interface.main.id}"]
  resource_group_name = "${var.resourcegroup_vm}"
  vm_size = "${var.vm_size}"
  tags {
    application = "${var.tag}"
  }

Я ожидал, что Terraform просто создаст вторую виртуальную машину после изменения ее имени и тега. Не желает уничтожать первый из-за изменения имени и тега.

1 Ответ

0 голосов
/ 07 мая 2019

Terraform основан на HCL (Hashicorp Configuration Language), в котором записаны файлы *.tf. Это декларативный язык (в отличие от императивного), что означает, что вы описываете желаемое состояние, которое вы хотите, чтобы ваша инфраструктура быть, и Terraform выяснит, какие изменения необходимы, чтобы довести его до этого уровня.

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

Для развертывания нескольких экземпляров вы можете использовать атрибут count . Затем вы можете использовать интерполяцию, чтобы получить имена и теги, основанные на счетчике, что-то вроде этого:

resource "azurerm_virtual_machine" "main" {
  location = "${var.location}"
  name = "${var.vm_name}-${count.index + 1}"
  network_interface_ids = ["${azurerm_network_interface.main.id}"]
  resource_group_name = "${var.resourcegroup_vm}"
  vm_size = "${var.vm_size}"
  tags {
    application = "${var.tag}-${count.index + 1}"
  }

  count = 2
}

Обратите внимание на прикрепленные -${count.index + 1} к name и тег application.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...