0

我有一个与 Terraform 和 vSphere 提供程序(任何版本)相关的问题,与导入带有 vSphere 标签的虚拟机有关,考虑到标签的数量及其类别因一个虚拟机而异,而且我想避免每个导入的虚拟机都有一个特定的 tf 模板......让我们举一个具体的例子:

  • VM0 没有标签
  • VM1 有一个类别 1 的标签 T1
  • VM2 具有各自类别 1 和 2 的两个标签 T1 和 T2 我只关心我的解决方案中的标签类别 1(这意味着我可能想要使用类别 1 的标签标记 VM 以用于特殊目的)。所以,我的问题是,如果我在用于导入 VM 的 tf 模板中使用具有一个标签类别和一个标签的模板
...
data "vsphere_tag_category" "category1" {
  name = "${var.vm_myuse_category_tag}"
}
data "vsphere_tag" "tag1" {
  name        = "${var.vm_myuse_tag}"
  category_id = "${data.vsphere_tag_category.category1.id}"
}
...
resource "vsphere_virtual_machine" "vm" {
  name                 = "${var.name}"
  ...
  tags = [
    "${data.vsphere_tag.tag1.id}"
  ]
}

导入所有 3 个虚拟机都可以,但是当我尝试修改时,比如说虚拟机的内存大小,那么计划和应用将:

  • VM0 失败
  • 为 VM1 工作
  • 擦除 VM2 的第二个标签

有人会对如何处理这种情况有任何提示吗?事先谢谢

4

0 回答 0