获取当前 Nova 实例 ID

Getting Current Nova Instance ID

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

this AWS class

中存在类似于函数的东西

谢谢

编辑

我发现有一个叫meta_data.json that contains the server id (UUID) when creating the server with configuration drive的文件enabled了,但是怎么通过代码实现呢?我可以使用 jclouds SKD 获取该文件吗?

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

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

此命令将 return 一个包含服务器 ID (UUID) 的 JSON 对象,请记住 首先 事情是,当创建一个Nova 实例你应该检查配置驱动器选项

second,服务器中有多个meta_data.json个文件,文件夹2012-08-10[=23中存在的文件=] 包含服务器 ID (UUID)