【问题标题】:Terraform Openstack: deploy new instance with same security groups as existing oneTerraform Openstack:部署具有与现有安全组相同的安全组的新实例
【发布时间】:2021-05-20 06:30:12
【问题描述】:

假设我已经有一个分配了安全组的现有主机。我可以通过以下方式检索主机的状态:

data "openstack_compute_instance_v2" "host_data_01" {
  # ID for host A
  id = "88c96f9d-7951-4ab5-9e37-f1c5b33e8889"
}

在状态文件中,我可以看到分配了哪些安全组,因此我可以继续写下它们。但是有没有办法将该主机的所有安全组分配给我正在尝试部署的新实例?

分配该集合的第一个安全组条目的示例。

security_groups = [
  element(sort(data.openstack_compute_instance_v2.host_data_01.security_groups), 0)
]

在伪代码中我想要的是:

security_groups = [
  for entry in data.module.module_name.security_groups
    add entry
]

亲切的问候 罗马

【问题讨论】:

    标签: terraform openstack terraform-provider-openstack


    【解决方案1】:

    休息了几天后,我找到了非常简单的解决方案。

    security_groups 元素的输出结构与输入的结构相同,因此您可以非常简单地将 security_group 输出作为变量分配给新主机:

    resource "openstack_compute_instance_v2" "host_01" {
      ...
      security_groups = data.openstack_compute_instance_v2.test_host.security_groups  
      ...
    }
    
    data "openstack_compute_instance_v2 "test_host" {
      id = "12345"
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2018-01-12
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多