2016-12-15 65 views
0

我想用teraaform來完成這些工作。我將同時創建多個vms,例如10. 而且我將使用靜態IP選項。
讓我們說我的IP開始與將故障域綁定到azure和Terraform中的特定IP

192.168.5.4,192.168.5.5,192.168.5.6 ....等等

,所以我希望確保下面的IP在同一個故障域應該去。

說故障域0

192.168.5.4

192.168.5.7

192.168.5.10

說故障域1

192.168.5.5

192.168。 5.8

192.168.5.11

說故障域2

192.168.5.6

192.168.5.9

192.168.5.12

關係是(lastnumber%3)是一樣的。 我怎麼能做到這一點?

回答

0

您可以使用simple math interpolation像這樣的東西:

variable "count" { 
    default = 10 
} 

resource "azurerm_network_interface" "test" { 
    name = "${format("VM%02d-NIC1", count.index + 1)}" 
    location = "West US" 
    resource_group_name = "myResourceGroup" 
    count = "${var.count}" 

    ip_configuration { 
     name = "${format("ipConfig-VM%02d-NIC1", count.index + 1)}" 
     subnet_id = "SubNet" 
     private_ip_address_allocation = "Static" 
     private_ip_address = "192.168.5.${count.index + 1}" 
    } 

    tags { 
     fault_domain = "${(count.index + 1) % 3}" 
    } 
} 

然後根據您的要求建立基礎設施的其餘部分並分配NIC給虛擬機:

resource "azurerm_virtual_machine" "test" { 
    count = "${var.count}" 
    name = "${format("VM%02-test", cound.index + 1)}" 
    location = "West US" 
    resource_group_name = "myResourceGroup" 
    network_interface_ids = ["${element(azurerm_network_interface.test, count.index).id}"] 
    vm_size = "Standard_A0" 
    ... 
}