有没有办法从特定子网获取分配给VM的IP并将其嵌入Heat Orchestration模板中(假设网络有多个子网,我们只为所有子网创建一个端口)? 我需要浮动IP的这个信息。对于在单个端口上具有多个固定地址的端口,我们需要为创建浮动IP提供特定的IP。
get_attr键不是很有用。这是JSON表示。
"TestVM_FIPTest1": {
"type": "OS::Neutron::FloatingIP",
"properties": {
"floating_network_id": "public",
"port_id": {
"get_resource": "TestVM_Test1sub2sub1_Port"
},
"fixed_ip_address":
{
"get_attr": ["TestVM_Test1sub2sub1_Port", "fixed_ips", 1, "ip_address"]
}
}
}
原因是我需要传递索引以获取端口上分配的IP。但是没有办法说明从哪个子网分配IP(因为在该端口上映射了多个子网)或哪个索引具有从所需子网分配的IP
现在我正在使用单个模板一次创建所有资源。
答案 0 :(得分:0)
您可以在热模板中为VM分配静态IP,如下所述 -
resources:
myVM_port1:
type: OS::Neutron::Port
properties:
name: "myVM_port1"
network_id: { get_param: network_id }
fixed_ips: [{"subnet": { get_param: network-subnet }, "ip_address": { get_param: fixed-ip } }]
myVM_1:
type: OS::Nova::Server
properties:
name: "myVM"
image: { get_param: cirros_Image }
flavor: "m1.tiny"
availability_zone: "compute1"
networks:
- port: { get_resource: myVM_port1 }