获取当前的Nova实例ID

时间:2018-04-29 17:47:38

标签: openstack-nova jclouds

我使用jclouds SDK 2.1.0处理OpenStack资源,假设我有一个正在运行的nova服务器并且代码正在其上运行,有没有办法获取已经运行的该实例的ID或详细信息?意味着获取实例详细信息(不是针对所有实例,只针对我使用的实例)

this AWS class

中存在与函数类似的内容

由于

修改

我发现在创建启用了meta_data.json的服务器时,有一个名为configuration drive的文件包含服务器ID(UUID),但是如何通过代码实现它?我可以使用jclouds SKD获取该文件吗?

2 个答案:

答案 0 :(得分:1)

使用jclouds ComputeSevice创建服务器时,返回的NodeMetadata对象具有包含服务器ID的providerId字段。如果直接使用Nova API,则会获得已具有其ID的Server对象。

答案 1 :(得分:0)

根据metadata APIs,其唯一的问题是发送到URL的HTTP GET请求:http://169.254.169.254/openstack/2012-08-10/meta_data.json但诀窍是从Nova Server本身发送此请求,所以我打开了一个新手服务器的控制台,我运行命令:curl http://169.254.169.254/openstack/2012-08-10/meta_data.json

这个命令将返回一个包含服务器ID(UUID)的JSON对象,请记住第一个的事情是,在创建Nova实例时应该检查配置驱动器选项 enter image description here

第二,服务器中有多个meta_data.json文件,文件夹 2012-08-10 中包含的文件包含服务器ID(UUID)< / p>