用于获取软件层节点

时间:2016-05-25 13:21:07

标签: cloud ibm-cloud-infrastructure

我正在尝试编写一些可以执行switch语句的脚本,具体取决于节点的实例类型; VMbaremetal

有没有办法可靠地告诉机器在环境中的实例类型?

我的第一个想法是存在bond0接口,但如果有人用奇怪的网络配置命令VM,这可能会有问题。如果有一个简单的API调用来检查实例类型?

1 个答案:

答案 0 :(得分:2)

你可以使用这项服务:

http://sldn.softlayer.com/reference/services/SoftLayer_Resource_Metadata

该服务旨在识别设备。该服务必须在机器上运行,您不需要指定用户名或API密钥。

所以你可以运行method to get the id of the machine例如

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET https://api.service.softlayer.com/rest/v3/SoftLayer_Resource_Metadata/getId

获得设备的ID后,您可以看到此ID是属于裸机服务器还是VSI,为此您可以使用getObject方法。

http://sldn.softlayer.com/reference/services/SoftLayer_Hardware_Server/getObject http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getObject

例如,如果您的ID属于VSI并且您调用SoftLayer_Hardware_Server :: getObject方法,您将收到错误,例如该ID不存在,并且当您调用SoftLayer_Virtual_Guest :: getObject方法时,您将能够获得有关该ID的信息。机。

此外,您可以列出帐户中的所有裸机和VSI服务器,验证您的ID是属于裸机还是VSI,您可以使用以下方法:

http://sldn.softlayer.com/reference/services/SoftLayer_Account/getVirtualGuests http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware

此致