在 openstack VM 上获取浮动 IP

Fetching floating IP on openstack VM

我正在尝试在我的 VM(位于 openstack 云上)上自动化一项服务,为此我需要该机器的浮动 IP。有什么命令或任何东西可以帮助我得到它吗?

安装 che openstack cli。我使用的是 cli 版本 openstack 2.6.0.

首先创建一个浮动IP。您需要提供 public 网络的名称。在我的例子中,名称是 public。如果不确定可以从中获取浮动 ip 的网络名称,请检查

openstack network list 

创建浮动ip

$ openstack ip floating create public
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| fixed_ip_address    | None                                 |
| floating_ip_address | 86.119.0.163                         |
| floating_network_id | 7313f148-f340-49b4-9d76-89de0702e801 |
| headers             |                                      |
| id                  | bba11a1b-9a31-4d67-a339-2fdbb3b74d11 |
| port_id             | None                                 |
| project_id          | 0009b5ca32594503b2d64ded05bbe0a8     |
| router_id           | None                                 |
| status              | DOWN                                 |
+---------------------+--------------------------------------+
$

现在您有了一个浮动 IP,您可以使用 VM 名称将其关联到 VM。您可以使用命令

检查虚拟机名称
openstack server list

关联浮动IP

openstack ip floating add 86.119.0.163 vmname

如果您再次执行此操作 openstack server list,您将看到现在已列出与 VM 关联的 IP。

我想你现在对

感兴趣
openstack server show vmname -f json

请问return很多关于VM的信息还有地址。检查 -f 标志,格式化程序比 json

澄清一下:当您使用 "you want to get" 浮动 IP 时,您想从实例内部知道附加到它的浮动 IP?。如果是这种情况,只需直接使用 "curl" 使用元数据服务,或者如果实例上安装了 cloud-init 工具,请使用 "ec2metadata" 命令。

如果您想将 FIP 自动分配给实例,上面的答案是正确的。