Openstack API 开发 快速入门
Openstack 做为流行的开源云计算平台,其最大特性是利用其提供的基础设施API,让我们可以以软件的方式来动态管理IAAS资源。Openstack 提供的api是流行的Rest API.
物理服务器地址: 192.168.1.1
管理员用户名:admin
管理员密码:password
管理员租户ID:3942bfc544a24f748788c06dbc486ffa
curl -k -X 'POST' -v http://192.168.1.1:5000/v2.0/tokens -d '{"auth":{"passwordCredentials":{"username": "admin", "password":"password"}, "tenantId":"3942bfc544a24f748788c06dbc486ffa"}}' -H 'Content-type: application/json'
返回一串的json字符串:

{
"access" : {
"token" : {
"expires" : "2013-01-23T04:26:01Z",
"id" : "9bc5f651f5ff44329f67a5a33486fcf4",
"tenant" : {
"description" : null,
"enabled" : true,
"id" : "3942bfc544a24f748788c06dbc486ffa",
"name" : "admin"
}
},
"serviceCatalog" : [ {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:8774/v2/3942bfc544a24f748788c06dbc486ffa",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:8774/v2/3942bfc544a24f748788c06dbc486ffa",
"publicURL" : "http://192.168.1.1:8774/v2/3942bfc544a24f748788c06dbc486ffa"
} ],
"endpoints_links" : [ ],
"type" : "compute",
"name" : "nova"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:9696/",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:9696/",
"publicURL" : "http://192.168.1.1:9696/"
} ],
"endpoints_links" : [ ],
"type" : "network",
"name" : "quantum"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:9292/v2",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:9292/v2",
"publicURL" : "http://192.168.1.1:9292/v2"
} ],
"endpoints_links" : [ ],
"type" : "image",
"name" : "glance"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:8776/v1/3942bfc544a24f748788c06dbc486ffa",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:8776/v1/3942bfc544a24f748788c06dbc486ffa",
"publicURL" : "http://192.168.1.1:8776/v1/3942bfc544a24f748788c06dbc486ffa"
} ],
"endpoints_links" : [ ],
"type" : "volume",
"name" : "cinder"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:8773/services/Admin",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:8773/services/Cloud",
"publicURL" : "http://192.168.1.1:8773/services/Cloud"
} ],
"endpoints_links" : [ ],
"type" : "ec2",
"name" : "ec2"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:8080/v1",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:8080/v1/AUTH_3942bfc544a24f748788c06dbc486ffa",
"publicURL" : "http://192.168.1.1:8080/v1/AUTH_3942bfc544a24f748788c06dbc486ffa"
} ],
"endpoints_links" : [ ],
"type" : "object-store",
"name" : "swift"
}, {
"endpoints" : [ {
"adminURL" : "http://192.168.1.1:35357/v2.0",
"region" : "RegionOne",
"internalURL" : "http://192.168.1.1:5000/v2.0",
"publicURL" : "http://192.168.1.1:5000/v2.0"
} ],
"endpoints_links" : [ ],
"type" : "identity",
"name" : "keystone"
} ],
"user" : {
"username" : "admin",
"roles_links" : [ ],
"id" : "89b0ec701354421fa2284667d4175af7",
"roles" : [ {
"id" : "12833eaa4ff14e8ea1e1c2f96ea6f18d",
"name" : "KeystoneServiceAdmin"
}, {
"id" : "31e298db6ece43c2b85f21f2a696809e",
"name" : "admin"
}, {
"id" : "8cc376e9218a4068af4cb5a923c0f201",
"name" : "KeystoneAdmin"
}, {
"id" : "bb4d1cf04bcb4be59bb2b78f9a273a9c",
"name" : "ResellerAdmin"
} ],
"name" : "admin"
}
}
}

需要的是前面几行:
{"access": {"token": {"expires": "2013-01-23T02:22:40Z", "id": "dba0a6722b86483e83b07e5556bafb02"...
其中的ID一项,即为我们以后认证需要的token,记下来:

{
"auth":{
"passwordCredentials":{
"username":"admin",
"password":"password"
},
"tenantId":"3942bfc544a24f748788c06dbc486ffa"
}
}

缺少了tenantId选项依然可以获得token ,然而这样的token只能在keystone组件中使用,当使用此token去nova 或者image组件认证时,会失败(401错误)

curl -v -H "X-Auth-Token:dba0a6722b86483e83b07e5556bafb02" http://192.168.1.1:8774/v2/3942bfc544a24f748788c06dbc486ffa/servers
curl毕竟是命令行,比较麻烦,大家可以使用rest客户端去操作。这里推存一个JAVA的:




{
"server":{
"flavorRef":"100",
"imageRef":"03419abb-c27f-4dde-bc74-b8387d1ccb30",
"metadata":{
"My Server Name":"Apache1"
},
"name":"new-server-test",
"personality":[
{
"contents":"",
"path":"/etc/banner.txt"
}
]
}
}



{
"server":{
"adminPass":"MVk5HPrazHcG",
"id":"5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"links":[
{
"href":"http://openstack.example.com/v2/openstack/servers/5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"rel":"self"
},
{
"href":"http://openstack.example.com/openstack/servers/5bbcc3c4-1da2-4437-a48a-66f15b1b13f9",
"rel":"bookmark"
}
]
}
}

Openstack API 开发 快速入门的更多相关文章
- Transform组件C#游戏开发快速入门
Transform组件C#游戏开发快速入门大学霸 组件(Component)可以看作是一类属性的总称.而属性是指游戏对象上一切可设置.调节的选项,如图2-8所示.本文选自C#游戏开发快速入门大学霸 ...
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...
- Apple Watch开发快速入门教程
Apple Watch开发快速入门教程 试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...
- 游戏控制杆OUYA游戏开发快速入门教程
游戏控制杆OUYA游戏开发快速入门教程 1.2.2 游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4 游戏控制杆各个角度的 ...
- SpringBoot开发快速入门
SpringBoot开发快速入门 目录 一.Spring Boot 入门 1.Spring Boot 简介 2.微服务 3.环境准备 1.maven设置: 2.IDEA设置 4.Spring Boot ...
- WPF开发快速入门【7】WPF的拖放功能(Drag and Drop)
概述 本文描述WPF的拖放功能(Drag and Drop). 拖放功能涉及到两个功能,一个就是拖,一个是放.拖放可以发生在两个控件之间,也可以在一个控件自己内部拖放.假设界面上有两个控件,一个Tre ...
- abp vnext 开发快速入门 1 认识框架
最近在做一个项目,用的框架是Abp vnext ,不是Abp, 我自己也是刚开始用这个框架来做项目,难免要查资料,这个框架官方有中文文档,可以到官网www.abp.io 去查看,国内也有一些写了相关的 ...
随机推荐
- 利用Arcade表达式显示多行标签
要素图层依然是全球气象站点分布数据,属性表如下: 展示效果如下,显示的四行数据分别是属性表中的WIND_NAME,TEMP,WIND(运算之后的),R_HUMIDITY 本次尝试一次性写全所有的信息: ...
- Layui父页面向子页面传参
废话不多说!直接上代码! 父窗体js $('.mytable').on('click', '.editRow', function () { var table = $('#table_id_exam ...
- # quill-image-extend-module :实现vue-quill-editor图片上传,复制粘贴,拖拽
改造vue-quill-editor: 结合element-ui上传图片到服务器 quill-image-extend-module vue-quill-editor的增强模块, 功能: 提供图片上传 ...
- Matplotlib 绘图与可视化 一些属性和错误
属性 *)调整图像边缘及图像间的空白间隔plt.subplots.adjust(6个参数) 图像外部边缘的调整可以使用plt.tight_layout()进行自动控制,此方法不能够很好的控制图像间的间 ...
- 小学生都能学会的python(函数的进阶)
小学生都能学会的python(函数的进阶) 1. 动态传参 形参: 1. 位置参数 2. 默认值参数 3. 动态传参 *args 动态接收位置参数 **kwargs 动态接收关键字参数 def fun ...
- 监控SQLserver计数器
- POSIX 线程编程(一)简介
简介 在共享内存的多处理器结构中,可以用线程来实现并行.对于UNIX系统, IEEE POSIX 1003.1c标准规定了C语言线程编程接口的标准.这份标准的实现就是POSIX threads, 或者 ...
- git batch
git batch 不用每次自己写了:不是特别推荐哦: git add . git commit -m "commit" git push git status
- [CSS3] The picture element
<picture> <source media="(min-width: 1000px)" srcset="kookaburra_large_1x.jp ...
- easyui datagrid 动态加入、移除editor
使用easyui 行编辑的时候完毕编辑的功能比較简单,可是假设要依据一个框的值动态改变别的值或者编辑的时候禁用某个框的时候就比較麻烦了. 比方像以下这样:加入行的时候每一个值都是手动输入,改动的时候第 ...