有没有办法在创建vm实例时使用vsphere数据源设置network_interface标签?
文档似乎表明你只能使用名字。数据源仅导出ID。
我已经把我在想的内容放在下面,但不确定它是否会起作用。我是新来的。
data "vsphere_distributed_virtual_switch" "dvs" {
name = "my_dvs"
datacenter_id = "${data.vsphere_datacenter.datacenter.id}"
}
data "vsphere_network" "dgp" {
name = "my_dgp"
datacenter_id = "${data.vsphere_datacenter.datacenter.id}"
}
resource "vsphere_virtual_machine" "linux_box" {
...
network_interface {
label = "${data.vsphere_network.dvs.id}/${data.vsphere_network.dgp.id}"
}
}
答案 0 :(得分:0)
运行测试用例来证明它。
将以下代码保存到data.tf
data "vsphere_datacenter" "datacenter" {
name = "dc1"
}
data "vsphere_distributed_virtual_switch" "dvs" {
name = "my_dvs"
datacenter_id = "${data.vsphere_datacenter.datacenter.id}"
}
data "vsphere_network" "dgp" {
name = "my_dgp"
datacenter_id = "${data.vsphere_datacenter.datacenter.id}"
}
运行terraform plan
和terraform apply
。 由于没有资源创建/销毁,因此运行它是安全的。
运行terraform apply
后,它会生成一个文件terraform.tfstate
,如果id是您要查找的名称,则查看此文件。
如果是,您编写的代码是正确的。