我正在Azure中创建多个具有腐蚀响应NIC和PublicIP的虚拟机。
我可以为虚拟机创建唯一的名称,没有问题:
resource "azurerm_virtual_machine" "workernode" {
count = "${var.nodeCount}"
name = "workernode-${count.index +1}"外网IP:
resource "azurerm_public_ip" "AliasworkerPubIP" {
count = "${var.nodeCount}"
name = "workerpubip${count.index +1}"和NIC:
resource "azurerm_network_interface" "workerNIC" {
count = "${var.nodeCount}"
name = "workerNIC.${count.index +1}" 但我不知道如何让它工作,然后连接网卡到刚刚创建的PublicIP…
我已经尝试了各种不同的方法,但没有任何东西点击...我知道我错过了一些东西,或者没有正确理解插值解析,但是什么?!
下面是我尝试过的例子:
public_ip_address_id = "${azurerm_public_ip}.${format("Alias_WorkerIP%d.id", count.index +1)}"
public_ip_address_id = "${format("Alias_WorkerIP%d.id", count.index +1)}"
public_ip_address_id = "${format("azurerm_public_ip.workerpubip.%s.id", count.index +1)}" 你知道我哪里错了吗?
发布于 2017-08-22 02:58:42
目前推荐的表达方式是:
public_ip_address_id = "${azurerm_public_ip.workerpubip.*.id[count.index]}"使用此索引运算符([ ... ])允许Terraform更好地理解这意味着的依赖性,因此如果只需要替换一个公共IP实例,它可以理解只需要更新一个对应的azurerm_network_interface。
当使用element函数Terraform时,它只“看到”azurerm_public_ip.workerpubip.*.id表达式,并且保守地假设存在对所有azurerm_public_ip ids的依赖。
发布于 2017-08-20 03:20:19
我是这样解决这个问题的:
public_ip_address_id = "${element(azurerm_public_ip.workerpubip.*.id,count.index)}“
发布于 2019-09-03 10:03:22
在azurerm_network_interface模块中尝试此功能
public_ip_address_id = "${element(azurerm_public_ip.main-rg__vm-ip.*.id, count.index)}"在azurerm_public_ip模块中
resource azurerm_public_ip main-rg__vm-ip {
count = "${var.vm_count}"
name = "${var.environment}-vm${count.index+1}-ip"
location = "${var.location}"
resource_group_name = "${azurerm_resource_group.main-rg.name}"
sku = "Basic"
allocation_method = "Dynamic"
}https://stackoverflow.com/questions/45764606
复制相似问题