使用terraform vsphere资源设置network_interface标签

时间:2017-10-19 14:00:49

标签: terraform vsphere

有没有办法在创建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}"
  }
}

1 个答案:

答案 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 planterraform apply由于没有资源创建/销毁,因此运行它是安全的。

运行terraform apply后,它会生成一个文件terraform.tfstate,如果id是您要查找的名称,则查看此文件。

如果是,您编写的代码是正确的。