Я написал скрипт Terraform для создания нескольких виртуальных машин Azure.
Количество созданных виртуальных машин основано на переменной type
в моем .tfvars
файле:
type = [ "Master-1", "Master-2", "Master-3", "Slave-1", "Slave-2", "Slave-3" ]
Мой variables.tf
файл содержит local
:
count_of_types = "${length(var.type)}"
И мой resources.tf
файл содержит код, необходимый для фактического создания соответствующего количества виртуальных машин из этой информации:
resource "azurerm_virtual_machine" "vm" {
count = "${local.count_of_types}"
name = "${replace(local.prefix_specific,"##TYPE##",var.type[count.index])}-VM"
location = "${azurerm_resource_group.main.location}"
resource_group_name = "${azurerm_resource_group.main.name}"
network_interface_ids = ["${azurerm_network_interface.main.*.id[count.index]}"]
vm_size = "Standard_B2ms"
tags = "${local.tags}"
Наконец, в моем файле output.tf
я вывел IP-адрес каждого сервера:
output "public_ip_address" {
value = ["${azurerm_public_ip.main.*.ip_address}"]
}
Я создаю кластер Kubernetes с 1x Master и 1x Slave VM. С этой целью скрипт работает нормально - первый IP-выход является ведущим, а второй IP-выход - ведомым.
Однако, когда я перехожу на 8+ виртуальных машин, мне хотелось бы знать, какой IP относится к какой виртуальной машине.
Есть ли способ изменить вывод, включив type
local или просто имя хоста сервера вместе с Public IP?
например. 54.10.31.100 // Master-1
.