我计划创建一个服务,在openstack环境中休眠/唤醒未使用的计算节点,以便我需要计算节点的ip地址。 是否有任何API或命令可用于获取OpenStack网络中存在的IP地址(不是计算节点的名称)计算机?获取openstack网络中计算节点的ip地址
回答
在OpenStack云环境设置中使用的IP地址有两种类型。
修正:
只能从OpenStack的网络来访问,也就是虚拟机之间。
浮动:
能否从OpenStack的云网络外部访问,基本的工作原理不同的接口上,一般是由该IP提供给公众从外部netwrok访问该虚拟机。
现在,你知道这一点,按照这里给出的API。 http://api.openstack.org/api-ref.html#ext-os-ext-ips
在通过JSON响应获取IP地址时,首先必须检查它是固定的还是浮动的。
这应该回答你的问题,我希望。如果不是的话请通知。
您可以查询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
嗨,是否有一个“官方的方式”如何查询数据库?我的意思是,Nova Conductor处理所有的数据库请求,没有什么应该直接进入数据库,对吧? – RichArt
嗨!不,不幸的是,OpenStack没有推荐查询数据库的“官方方式”。他们公开了这些API,以便用户不必查询数据库。您也可以使用OpenStack Python SDK,但此时该方法只返回计算的名称。因此,该方法必须进行修改,否则您可以编写一个调用REST API的新方法。你可以在python中使用httplib库来做到这一点。我会尝试写和添加它作为答案。 –
- 1. 计算网络的IP地址
- 2. 网络计算机的IP地址
- 3. 在Android中获取网络IP地址
- 4. 获取网络用户的IP地址
- 5. 如何获取远程计算机的本地网络IP地址
- 6. 在Android模拟器上获取WIFI网络中的计算机IP地址
- 7. 如何从网络上的IP地址获取MAC地址?
- 8. 使用Win32网络API获取基于计算机名称的本地计算机的IP地址
- 9. 删除Openstack中的计算节点
- 10. 计算两个IP地址之间的网络2非CIDR
- 11. 从网络上的IP地址查找特定计算机
- 12. 如何获取vC++中网络连接的PC的IP地址
- 13. 如何在openstack实例中获取关联的ip地址
- 14. 如何获取WindowsStore Apps的本地网络IP地址
- 15. 获取套接字/网络接口的本地IP地址
- 16. 使用java获取本地网络的IP地址
- 17. Openstack IP地址过滤器
- 18. 如何获取Java中所有网络设备的IP地址
- 19. 跨IP网络的IP地址
- 20. 从网址获取IP地址
- 21. 从IP地址和子网掩码获取网络ID
- 22. 获取和检查本地计算机的IP地址
- 23. 从节点js中的IP地址获取时区
- 24. 在虚拟网络中获取IP地址
- 25. 在ad hoc网络中获取其他IP地址
- 26. Arduino搜索网络的IP地址,并获得MAC地址
- 27. 如何在Java中获取计算机的WAN IP地址?
- 28. 在PHP中获取计算机的IP地址
- 29. 如何使用IP上的IP和CIDR来计算网络和广播地址
固定和浮动IP被分配给创建的实例,我需要的是主机的IP,即运行这些实例的计算节点。 – R45c4l
http://api.openstack.org/api-ref.html#identity-v2.0。向“v2.0 /令牌”发出POST请求,并且它应该返回包含服务目录的JSON。在服务目录字段中输入“type”:“compute”,您将获得计算模块的公共URL。实例运行在这个公共URL的计算。(一般) –