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
.