softlayer api: 更改 root 密码和 ssh-key 操作

softlayer api: change root password and ssh-key operation

我是一名开发人员,我目前的工作是编写一个脚本来管理软层虚拟机。问题是关于更改 Root 密码和绑定(删除绑定)SshKey。我的问题是:

  1. 我有一个运行 softlayer vm,wihch softlayer api可以帮我修改vm的root密码。

  2. 我有一个 运行 softlayer vm,它之前没有绑定 sshkey。是否有任何软层 api 可以帮助我将 ssh-key 与此 vm 绑定?

  3. 与第2点相反,如何使用softlayer解绑sshkey api?

关于您的第一个问题,从虚拟机更改 root 密码,请按照以下步骤操作:

从虚拟机中检索密码的标识符

https://$user:$apiKey@api.softlayer.com/rest/v3.1/SoftLayer_Virtual_Guest/$vsiId/getSoftwareComponents?objectMask=mask[passwords]

Method: Get

$user$apiKey$vsiId替换为自己的信息

你会得到这样的结果:

hardwareId": null
"id": 345676755
"manufacturerLicenseInstance": "C412F72A-1BB1-4C07-9467-E55729234F8E"
"passwords": [1]
0:  {
"createDate": "2016-06-09T11:10:28-03:00"
"id": 122333
"modifyDate": "2016-09-06T11:19:18-03:00"
"password": "Cochabamba"
"port": null
"softwareId": 11209641
"username": "Ruber"
"software": null
}
}

然后您可以使用以下调用进行更新:

https://$user:$apiKey@api.softlayer.com/rest/v3.1/SoftLayer_Software_Component_Password/$passwordId/editObject

Method: Post

{  
   "parameters":[  
      {  
         "username":"usernameTest",
         "password":"Password*-"
      }
   ]
}

$user$apiKey$passwordId替换为自己的信息,在这种情况下,$passwordId 是:122333

关于您的 secondthird 问题,不幸的是,无法通过 SoftLayer API 完成此操作,它是需要进行 OS 重新加载

  1. 我有一个运行 softlayer vm,wihch softlayer api可以帮我修改vm的root密码

Ruber Cuellar 发布的答案将更改 SoftLayer API、中列出的密码,但不会更改您系统上的密码,除非您执行 OS 重新加载。 API 方法实际上不会改变 运行 系统上的任何内容。

  1. 我有一个 运行 softlayer vm,它之前没有绑定 sshkey。是否有任何软层 api 可以帮助我将 ssh-key 与此 vm 绑定?

没有。您当然可以手动添加密钥。 https://help.ubuntu.com/community/SSH/OpenSSH/Keys

  1. 与第2点相反,如何使用softlayer解绑sshkey api? 不,但您也可以手动删除它们。

以下内容对于将 SSH 密钥与 SoftLayer 一起使用可能也很有用 API

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

http://softlayer-api-python-client.readthedocs.io/en/latest/api/managers/sshkey/