特定のサブネットから VM に割り当てられた IP を取得し、それを Heat オーケストレーション テンプレートに埋め込む方法はありますか (ネットワークに複数のサブネットがあり、すべてのサブネットに対して 1 つのポートのみを作成している場合)? Floating IP についてこの情報が必要です。1 つのポートに複数の固定アドレスを持つポートの場合と同様に、フローティング 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 がどのインデックスにあるかを知る方法はありません。
現在、単一のテンプレートを使用してすべてのリソースを一度に作成しています。