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 去查看,国内也有一些写了相关的 ...
随机推荐
- c 最简单的链表
#include <stdio.h> struct node { int data; struct node *next; //指向本身的指针 }; // main() { struct ...
- windows下的ubuntu
办公用Windows确实方便,但对于开发和学习还是用Linux比较好. 在Windows下安装Linux子系统 windows10中推出了Linux子系统,这个功能对开发和学习来说真的很好,非常方便. ...
- 小学生都能学会的python(列表[ ])
小学生都能学会的python(列表[ ]) 1. 什么是列表(list) 能装东西的东西 列表中装的数据是没有限制的, 大小基本上是够用的 列表使用[]来表示. 在列表中每个元素与元素之间用逗号隔开 ...
- 单元测试Struts2Spring项目的Action和Service(包含源码)
最近,认真实践了单元测试Struts2.Spring等Java项目,今天特意写的是单元测试Struts2Spring项目的Action和Service. 由于已经写过不少Web开发框架单元测试的代码, ...
- (转)Linux内核 TCP/IP、Socket参数调优
Doc1: /proc/sys/net目录 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的,任何修改在系统重启后都会丢失) ...
- Socket实现一个简单的半双工通信
Socket是client进行在网络与server进行数据交互的一种基本通信方式.通信有三种通信.即单工.半双工,和全双工. 所谓单工,就是仅仅可以进行单向通信,如bb机. 而半双工就是一来一回的通信 ...
- linux高级技巧:heartbeat+lvs(三)
之前我们把LVS和heartbeat都单独进行了測试,是时候进行合并了 1.LVS+heartbeat: 首先显示我们的控制台: 让这两个 ...
- oracle 时间戳TIMESTAMP
//数据库 UPDATETIMESTAMP TIMESTAMP(6) //dto /** 更新时间戳 **/ private String updatetimestamp; //dao //插入操作 ...
- HDFS HA架构以及源代码引导
HA体系架构 相关知识介绍 HDFS master/slave架构,HDFS节点分为NameNode节点和DataNode节点. NameNode存有HDFS的元数据:主要由FSImage和EditL ...
- pandaboard安装ubuntu
参照:https://wiki.ubuntu.com/ARM/OmapDesktopInstall 主要是在linux下安装,主要命令为: zcat ./ubuntu-12.04-preinstall ...