Terraform 地形虚拟机名称前缀自动增量修改
我一直在努力寻找谷歌上有用的东西,所以我来了 我们目前正在部署2个新的虚拟机 我们正在使用 在地形TFVAR中,我们有以下两个属性:Terraform 地形虚拟机名称前缀自动增量修改,terraform,Terraform,我一直在努力寻找谷歌上有用的东西,所以我来了 我们目前正在部署2个新的虚拟机 我们正在使用 在地形TFVAR中,我们有以下两个属性: vm_count = "2" vm_name_prefix = "something000" 现在,在运行干运行后,Terraform将命名VM name: something0000 name: something0001 但我们希望VM的名称从1开始,然后从1开始计算 name: something0001 name: someth
vm_count = "2"
vm_name_prefix = "something000"
现在,在运行干运行后,Terraform将命名VM
name: something0000
name: something0001
但我们希望VM的名称从1开始,然后从1开始计算
name: something0001
name: something0002
有没有办法从Terraform获得这种行为
我似乎找到了定义这种行为的代码:
vsphere\u virutal\u machine\u linux.tf
resource "vsphere_virtual_machine" "virtual_machine_linux" {
count = "${var.template_os_family == "linux" ? var.vm_count : 0}"
name = "${var.vm_name_prefix}${count.index}"
resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
datastore_id = "${data.vsphere_datastore.ds.id}"
num_cpus = "${var.num_cpus}"
memory = "${var.memory}"
guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
wait_for_guest_net_timeout = "${var.wait_for_guest_net_timeout}"
network_interface {
network_id = "${data.vsphere_network.network.id}"
}
我们可以在不下载和修改git repo的情况下覆盖这个定义吗?即使您的共享TF代码似乎不是HCL,我认为解决问题的方法是使用一个起始值为1的外部变量,并在每个迭代步骤中递增它
name_index = [1, 2, 3, 4]
resource "example" "name" {
count = 4
name = "${var.name_index[count.index]}"
}
即使您的共享TF代码似乎不是HCL,我认为您的问题的解决方案是使用一个起始值为1的外部变量,并在每个迭代步骤中递增它
name_index = [1, 2, 3, 4]
resource "example" "name" {
count = 4
name = "${var.name_index[count.index]}"
}
可能就是你要找的。你所需要的只是一个简单的+1
可能就是你要找的。你所需要的只是一个简单的+1
While’s解决了Terraform和所有优秀编程语言一样使用0索引的问题,而人类是1的忠实粉丝,用前导0索引静态前缀是毫无意义的
如果你有9台机器,你会有从0001到0009的名字。但是在第十台机器上,你会得到00010。请注意,前导零的数量仍然相同
相反,您可以使用Terraform允许printf样式格式的事实:
name = "${var.vm_name_prefix}${format("%0000d", count.index + 1)}"
这意味着,如果你有9台机器,你将有名称something0001到something0009。但是在第10台机器上,你会得到0010,而在第9999台机器上,你会得到9999。While’s解决了一个事实,即Terraform和所有优秀的编程语言一样,使用0索引,而人类是1的忠实粉丝,用前导0索引静态前缀是毫无意义的
如果你有9台机器,你会有从0001到0009的名字。但是在第十台机器上,你会得到00010。请注意,前导零的数量仍然相同
相反,您可以使用Terraform允许printf样式格式的事实:
name = "${var.vm_name_prefix}${format("%0000d", count.index + 1)}"
这意味着,如果你有9台机器,你将有名称something0001到something0009。但是,在第10台机器上,您将得到一些0010,而在第9999台机器上,您将得到一些9999。您能否共享实际创建虚拟机的代码以及名称?您能否共享实际创建虚拟机以及名称的代码?