API 获取softlayer节点的实例类型

API to get instance type of softlayer node

我正在尝试编写一些脚本,这些脚本可以根据节点实例的类型执行 switch 语句; VMbaremetal

有没有办法可靠地判断环境中机器是什么类型的实例?

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

您可以使用此服务:

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 方法时,您将能够获取有关机器的信息。

另外你可以列出你账户中所有的裸机和VSI服务器,验证你的ID是属于裸机还是VSI,你可以使用这些方法:

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

此致