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 去查看,国内也有一些写了相关的 ...
随机推荐
- [HDU1160]FatMouse's Speed
题目大意:读入一些数(每行读入$w[i],s[i]$为一组数),要求找到一个最长的序列,使得符合$w[m[1]] < w[m[2]] < ... < w[m[n]]$且$s[m[1] ...
- Layui父页面向子页面传参
废话不多说!直接上代码! 父窗体js $('.mytable').on('click', '.editRow', function () { var table = $('#table_id_exam ...
- python 进程 multiprocessing模块
一.multiprocess.process模块 1.process类 Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得 ...
- JavaScript 实现简单的 弹出框关闭框
JavaScript 实现简单的 弹出框关闭框 知识点: 1.javaScript 添加HTML标签 2.javaScript 添加HTML标签属性 3.javaScript 追加元素 代码献上: & ...
- Golang-import-introduce
本文主要讲解golang中import关键字的用法 import( "fmt" ) //然后在代码里面可以通过如下的方式调用 fmt.Println("hello wor ...
- 关于使用动态语言运行时 (. net)
AutoCAD Managed .NET API允许您使用使用. NET 4.0 引入的动态语言运行时 (DLR). 使用DLR可以直接访问对象, 而无需: 打开一个对象进行读取或写入, 然后在完成后 ...
- 【codeforces 501D】Misha and Permutations Summation
[题目链接]:http://codeforces.com/problemset/problem/501/D [题意] 给你两个排列; 求出它们的字典序num1和num2; 然后让你求出第(num1+n ...
- 监控aps.net计数器
- 循环语句第2种 WHILE ... LOOP END LOOP;
--------第2种-------- WHILE ... LOOP END LOOP; declare n number(3) :=1; begin WHILE n&l ...
- 【转】 c#中两个DateTimePicker,一个时间设置为0:0:0,另一个设置为23:59:59
[转] c#中两个DateTimePicker,一个时间设置为0:0:0,另一个设置为23:59:59 stp1为第一个DateTimePicker this.dtp1.Value=this.dtp1 ...