如何通过Softlayer REST API将SSH密钥添加到虚拟客户端

时间:2017-05-23 02:58:40

标签: ibm-cloud-infrastructure

在配置虚拟客户端时,我尝试使用以下REST API将SSH密钥添加到虚拟客户端,但它不起作用。

url: https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest.json
body:
{"parameters": [{"datacenter": {"name": "lon02"}, "domain": "softlayer.com", "hourlyBillingFlag": true, "blockDeviceTemplateGroup": {"globalIdentifier": "2e9bba22-c88a-4e3b-87af-45fb8fc4531e"}, "localDiskFlag": true, "maxMemory": 4096, "hostname": "bosh-sl-test", "startCpus": 4, "primaryBackendNetworkComponent": {"networkVlan": {"id": 524954}}, "sshKeys": [{"id": 886121}], "primaryNetworkComponent": {"networkVlan": {"id": 524956}}}]}

1 个答案:

答案 0 :(得分:0)

JSON结构是正确的,我能够创建具有相同结构的VSI。您使用的网址不完整但也有效,完整的网址使用方法SoftLayer_Virtual_Guest::createObject,如下所示:

https://[user_name]:[api_key]@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/createObject
Method: POST

考虑到SshKey不会显示在响应中(它不会立即可用),您需要等到配置完成。

要验证是否添加了SshKey,您可以使用以下方法SoftLayer_Virtual_Guest::getObjectSoftLayer_Virtual_Guest::getSshKeys

https://[user_name]:[api_key]@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/[deviceId]/getObject?objectMask=mask[sshKeys]

OR

https://[user_name]:[api_key]@api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/[deviceId]/getSshKeys

注意:使用您自己的数据更改 [user_name] [api_key] [deviceId]