如何获取云主机控制台地址并打开云主机控制台
ZStack Cloud支持通过系统登录或第三方API工具(例如Postman)使用HTTP方式调用API获取云主机控制台地址。本文主要以管理员身份(admin)登录管理节点系统,获取云主机控制台地址,并展示如何打开云主机控制台。您也可以使用云平台其他已授权账户/用户身份登录系统进行获取。
API调用流程
API详细调用流程如下:
- 项目成员进入管理节点系统,发送以下Curl请求登录云平台:
其中:curl -H "Content-Type: application/json;charset=UTF-8" \ -X PUT -d '{"logInByAccount":{"accountName":"admin","password":"b109f3bbbc244eb82441917ed06d618b9008dd09b3befd1b5e07394c706a8bb980b1d7785e5976ec049b46df5f1326af5a2ea6d103fd07c95385ffab0cacbc86" }}' \ http://localhost:8080/zstack/v1/accounts/login- password字段需填入经过SHA-512算法加密的密码
返回结果为:
其中:{"inventory":{"uuid":"cbc32f54862f4a5296b97a1302975fb9","accountUuid":"a07965e9d6f34924824fc5e9a6518fc3","userUuid":"a07965e9d6f34924824fc5e9a6518fc3","expiredDate":"Oct 17, 2022 10:43:53 PM","createDate":"Oct 17, 2022 8:43:53 PM","noSessionEvaluation":false}}- uuid字段即为获取的本次Session的ID,表示登录成功
- 请求云主机控制台访问地址:
其中:curl -H "Content-Type: application/json;charset=UTF-8" -H "Authorization: OAuth cbc32f54862f4a5296b97a1302975fb9" \ -X PUT -d '{"params":{"vmInstanceUuid":"f601842905994688a3cf7100e8d54b23"}}' \ http://localhost:8080/zstack/v1/consoles- vmInstanceUuid字段为目标云主机的UUID
返回结果为:
其中:{"apiTimeout":1800000,"location":"http://172.20.14.227:8080/zstack/v1/api-jobs/c41ec46dd7f546a48c31d9d0ca2c89d8"}- location字段为请求云主机控制台访问地址异步API操作返回的轮询地址
- 轮询API结果:
curl -H "Content-Type: application/json;charset=UTF-8" \ -X GET http://172.20.14.227:8080/zstack/v1/api-jobs/c41ec46dd7f546a48c31d9d0ca2c89d8返回结果为:
其中:{"inventory":{"scheme":"http","targetScheme":"vnc","hostname":"172.20.16.95","port":4900,"token":"cbc32f54862f4a5296b97a1302975fb9_f601842905994688a3cf7100e8d54b23_1666013527.59","version":"4.5.0"}}- scheme字段为访问云主机控制台的应用协议
- targetScheme字段为云主机控制台协议
- hostname字段为云主机所在物理机的主机名
- port字段为云主机控制台访问端口
- token字段为云主机控制台访问密钥
- 打开云主机控制台:
将以上字段拼接,即可获取云主机控制台地址为:http://172.20.19.60:5000/novnc?host=172.20.16.95&port=4900&token=cbc32f54862f4a5296b97a1302975fb9_f601842905994688a3cf7100e8d54b23_1666013527.59。用户可将该地址输入至Chrome或Firefox浏览器,即可打开云主机控制台。
如图 1所示:图 1. 打开云主机控制台 
至此,云主机控制台地址已成功获取并打开。
