本文讲的是 : 连载:基于IBM PowerVC建企业云平台(2) , 【IT168技术】虚拟化作为云计算的基础,是目前一个重要的趋势。通过虚拟化可以提高 IT 资源和应用程序的效率和可用性。PowerVC 作为IBM新一代 Power Systems? 的企业虚拟化解决管理方案,能够提供Power Systems? 环境中的虚拟资源的管理。然而,由于各个企业有自己的业务场景和管理模式,因此当企业需要构建自己专属云平台的时候,PowerVC API给提供了基于OpenStack 标准的API服务,帮助企业构建自己的云服务。
关于本系列:本系列基于PowerVC 最新版本PowerVC Standard Edition 1.2.1 (管理PowerVM?) 讲解如何实现虚拟化环境的自动化管理,对于开发人员,系统管理员,系统测试人员和运维人员有所帮助。点击了解《连载:基于IBM PowerVC建企业云平台(1)》
本系列涉及以下生命周期:
基于IBM PowerVC 构建企业云平台概览(Overview)
基于PowerVC API的虚拟服务器生命周期管理
基于PowerVC API的主机和镜像管理
基于PowerVC API的存储管理
基于PowerVC API的网络管理
基于PowerVC构建企业云平台经验总结
关于本文:
本文主要包括以下内容:
开始之前
创建虚拟服务器
列出虚拟服务器
操作虚拟服务器
删除虚拟服务器
总结
参考资料
作者简介
1. 开始之前
本文将通过REST API 介绍了Power 虚拟服务器的生命周期管理。虚拟服务器的生命周期管理主要包括以下主要功能:
创建虚拟服务器: 创建一个/多个虚拟服务器
列出虚拟服务器: 列出以创建的虚拟服务器
操作虚拟服务器: 开机,关机,重启一个/多个虚拟服务器
删除虚拟服务器: 删除一个/多个虚拟服务器
图1:虚拟服务器生命周期
先决条件
在进行本教程之前,您应当将IBM Power VC 1.2.1 标准版环境搭建完成。本教程假设您熟悉Power VC的基础知识,并且了解JavaScript Object Notation(JSON), 以及如何使用REST API.
2. 创建虚拟服务器
2.1 获取身份认证
在使用Power VC API 之前,首先第一步需要获取到一个被授权的TokenID, 然后才可以使用Power VC API. 这个Token ID是一个具有有效期的数字认证,一旦这个Token ID失效,需要再次获取这个Token ID.
注意:这些示例中URL全部以https://myserver:port开头。您应当用Power VC所在系统的主机或者IP地址替换myserver, 并且用安装Power VC时的端口号替换port, HTTPS的默认端口号是443, 如果是HTTP的话默认端口号是80. 在REQUESTBODY中,用你访问PowerVC 环境的用户名和密码替代password和name.
当执行完成获取身份认证API之后,就会获取到一个Response Header 和 Response Body. 在Response Header 中可以看到X-Subject-Token,这个值就是我们需要的Token ID. 同时在Response Body中会获取到一个tenant ID. Token ID和tenant ID就是我们下文访问任何Power VC API所必须的两个参数。Token ID被添加在Request Header 中代表了你的权限ID, tenant ID被使用在API URL中代表了访问者的身份信息。
获取Token ID API 示例:
URL | https://myserver:port/powervc/openstack/admin/v3/auth/tokens |
REQUEST METHOD | POST |
REQUEST HEADERS | Content-Type:application/json Vary:X-Auth-Token, X-Subject-Token Accept:application/json(默认为XML) |
REQUEST BODY | { "auth": { "scope": { "project": { "domain": { "name": "Default" }, "name": "ibm-default" } }, "identity": { "password": { "user": { "domain": { "name": "Default" }, "password": "xxxxxx", "name": "xxxxxx" } }, "methods": [ "password" ] } } } |
RESPONSE HEADERS | X-Subject-Token: ###################### |
RESPONSE BODY | { "token": { "methods": [ "password" ], "roles": [ { "id": "##########################", "name": "##########" } ], "expires_at": "2014-07-15T20:34:09.448453Z", "project": { "domain": { "id": "default", "name": "Default" }, "id": "#########################",//tenant_id "name": "ibm-default" }, "catalog": [....这里省略其他内容.......] } |