【问题标题】:Using terraform vsphere resource to set network_interface label使用 terraform vsphere 资源设置 network_interface 标签
【发布时间】:2017-10-19 14:00:48
【问题描述】:

有没有办法在创建vm实例时使用vsphere数据源设置network_interface标签?

文档似乎声明您只能使用名称。数据源仅导出 id。

我把我的想法写在下面,但不确定它是否会起作用。我是这个 tbh 的新手。

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}"
  }
}

【问题讨论】:

    标签: terraform vsphere


    【解决方案1】:

    运行一个测试用例来证明它。

    将以下代码保存到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是你要找的名字就查看这个文件。

    如果是,那么你写的代码是正确的。

    【讨论】:

    • 不幸的是,这与我正在寻找的内容有点不同。如果它给我返回名称作为 id 并且我不得不按名称查找 id,那么我基本上是在无缘无故地使用数据源。我将测试该 id 是否可以在提供程序中使用
    • 那你不知道哪一部分?
    • 我想我正在寻找一种在 vm 资源中使用 ID 的方法,因为它们更加绝对。我已经在 github 上提交了一个问题,似乎 vm 资源不接受当前形式的 ID,但正在为新版本开发。所以此时vsphere数据源与vm资源不兼容。感谢您抽出宝贵时间!
    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多