【发布时间】:2016-08-12 06:57:15
【问题描述】:
我正在尝试自动化我的 VM(位于 openstack 云上)上的服务,为此我需要该机器的浮动 IP。有什么命令或任何东西可以帮助我得到它吗?
【问题讨论】:
标签: openstack openstack-nova openstack-neutron
我正在尝试自动化我的 VM(位于 openstack 云上)上的服务,为此我需要该机器的浮动 IP。有什么命令或任何东西可以帮助我得到它吗?
【问题讨论】:
标签: openstack openstack-nova openstack-neutron
只是为了澄清:当您“想要获得”浮动 IP 时,您想从实例内部了解附加到它的浮动 IP 吗?如果是这种情况,请直接使用“curl”使用元数据服务,或者如果您在实例上安装了 cloud-init 工具,请使用“ec2metadata”命令。
如果您想将 FIP 自动分配给实例,那么上面的答案是正确的。
【讨论】:
ec2metadata --public-ipv4 命令完成了这项工作。很好的答案。
安装 che openstack cli。我用的是cli版本openstack 2.6.0。
首先创建一个浮动IP。您需要提供公共网络的名称。在我的例子中,名称是 public。如果不确定网络的名称,您可以通过
检查获得浮动 ipopenstack 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 名称
openstack server list
关联浮动IP
openstack ip floating add 86.119.0.163 vmname
如果您再次执行openstack server list,您将看到现在列出的 IP 与 VM 关联。
我想你现在对
openstack server show vmname -f json
将返回大量有关 VM 的信息以及地址。检查-f标志,格式化程序比json多
【讨论】: