Terraform Openstack将预分配的浮动IP附加到实例

问题描述

我有一个用例,需要重新使用分离的浮动IP。有没有办法在Terraform中做到这一点?我尝试过:

`
data "openstack_networking_floatingip_v2" "fips" {
   status = "DOWN"
}
`

获取分离的IP的列表,但是我收到一个错误消息,说存在多个浮动IP(这是事实)。

是否有一种很好的方法将分离的浮动IP作为terraform中的数据资源?替代方法是通过包装器脚本使用此处概述的命令传递一组可用IP:Reuse detached floating IPs in OpenStack

解决方法

对于遇到此问题的任何人,这是我暂时解决的问题:

我使用“外部”数据资源调用openstack cli来检索可用ip的逗号分隔列表。 openstack cli命令如下所示:

openstack floating ip list --status DOWN -f yaml -c "Floating IP Address"  

为了获得适合terraform外部数据资源的格式的输出,我使用了python脚本。脚本会输出一个如下所示的json对象:{ips =“ ip.1.2.3,ip.4.5.6,ip.7.8.9”}

terraform中的外部数据资源如下所示:

data "external" ips {
    program = ["python","<path-to-python-script>"]
}

从那里,我可以将ips的逗号分隔字符串拆分为terraform并以数组形式访问ips:

output available_ips {
    value = split(",",data.external.ips.result.ips)
}

这绝对不是很优雅,我希望openstack_networking_floatingip_v2数据资源可以使用此功能,我将研究一个问题来添加它。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...