微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Terraform Openstack:部署与现有实例具有相同安全组的新实例

如何解决Terraform Openstack:部署与现有实例具有相同安全组的新实例

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

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
]

亲切的问候 罗马

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。