1

我计划创建一个服务,在 openstack 环境中休眠/唤醒未使用的计算节点,因为我需要计算节点的 IP 地址。是否有任何 API 或命令可用于获取 openstack 网络中存在的 IP 地址(不是计算节点的名称)机器?

4

2 回答 2

3

OpenStack 云环境设置中使用了两种类型的 IP 地址。

  1. 固定的:

    只能从 openstack 网络访问,即在 VM 之间。

  2. 漂浮的 :

    可以从 OpenStack 云网络外部访问,基本上工作在不同的接口上,并且通常此 IP 可供公众使用,以便从外部网络访问此 VM。

现在,您知道这一点,请遵循此处提供的 API。 http://api.openstack.org/api-ref.html#ext-os-ext-ips

通过 JSON 响应获取 IP 地址时,首先您必须检查它是固定的还是浮动的。

我希望这应该回答你的问题。如果没有,请告知。

于 2013-08-02T09:35:52.457 回答
0

您可以查询 nova 数据库并获取 compute_node 表中所有计算节点的 ip。我在 python 中编写了一个小函数来为我的一个测试执行此操作。

def get_compute_nodes(parameters):
    try:
        password = parameters['password']
        db=_mysql.connect(user="root",passwd=password, db="nova")
        query = """select host_ip from compute_nodes where deleted=0"""
        db.query(query)
        r=db.use_result()
        results =  r.fetch_row(maxrows=0)
        return results
    except Exception as exp:
        print "Error in accessing the Nova database"
        print exp
于 2016-10-26T13:05:11.780 回答