通过 ec2-api / boto 调用 OpenStack 功能
通过 ec2-api / boto 调用 OpenStack 功能
OpenStack 支持 amazon ec2 的 api,并能通过 python 库 boto 来进行调用。目前,社区在把 ec2-api 从 nova-api 中脱离出来,独立作为一个项目,放到 stackforge 中。项目的源代码地址为 https://github.com/stackforge/ec2-api
创建验证信息
ec2-api 有自己的验证方式,并转换到 keystone 上进行最终的验证。在使用前,需要先创建 ec2 的凭据信息:
keystone --tenant-id <tenant-id> --user-id <user-id> ec2-credentials-create
可通过下面的命令查看所有的 ec2 凭据信息:
keystone ec2-credentials-list
输出的结果如下:
+--------+----------------------------------+----------------------------------+
| tenant | access | secret |
+--------+----------------------------------+----------------------------------+
| admin | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+--------+----------------------------------+----------------------------------+
然后,可使用 boto 来调用 ec2-api。
使用 boto 调用 ec2-api
首先安装 boto,安装 2.25.0 之前的版本
pip install boto<2.35.0
由于 boto 2.35.0 以后的版本,在签名上与 OpenStack 采用的流程有点不同(在 IceHouse 版本上还存在此问题),因此会导致兼容性问题,在 nova-api 中会有错误信息:
AuthFailure: Signature not provided
如果遇到这种情况,更换为 2.34.0 即可。
然后,使用 ec2 凭据信息的 access 和 secret 来连接 OpenStack:
import boto
from boto.ec2.connection import EC2Connection
region = boto.ec2.RegionInfo(name='nova', endpoint='<OpenStack IP>')
conn = EC2Connection(aws_access_key_id="<access>",
aws_secret_access_key="<secret>",
is_secure=False,
port=8773,
path='/services/Cloud',
region=region)
regions = conn.get_all_regions()
print('--regions--')
print(str(regions))
boto / ec2-api 还支持很多其它的操作,均通过 EC2Connection 来进行。
在 stackforge 上, ThoughtWorks 贡献了 ec2-driver,实现 nova 调用 ec2。通过适当的修改,可以通过 ec2-api 来集成其它的 OpenStack(即 OpenStack on OpenStack )。
通过 ec2-api / boto 调用 OpenStack 功能的更多相关文章
- python调用openstack的api,create_instance的程序解析
python调用openstack的api,create_instance的程序解析 2017年10月17日 15:27:24 CloudXli 阅读数:848 版权声明:本文为博主原创文章,未经 ...
- OpenStack功能简介
为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 二 ...
- 【原创】web端高德地图javascript API的调用
关于第三放地图的使用,腾讯.百度.高德 具体怎么选择看你自己怎么选择了. 高德地图开放平台:http://lbs.amap.com/ 本次使用的是高德的javascript API http://lb ...
- 百度AI开放平台- API实战调用
百度AI开放平台- API实战调用 一. 前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...
- 利用有道翻译Api实现英文翻译功能
有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果. 通过调用有道翻译API数据接口,您可以在您的网站或应用中更灵活地定制翻译和查词功能. 第一步: ...
- web端高德地图javascript API的调用
[转载https://www.cnblogs.com/zimuzimu/p/6202244.html]web端高德地图javascript API的调用 关于第三放地图的使用,腾讯.百度.高德 具体怎 ...
- netty实现远程调用RPC功能
netty实现远程调用RPC功能 依赖 服务端功能模块编写 客户端功能模块编写 netty实现远程调用RPC功能 PRC的功能一句话说白了,就是远程调用其他电脑的api 依赖 <dependen ...
- 常用Java API之Scanner:功能与使用方法
Scanner 常用Java API之Scanner:功能与使用方法 Scanner类的功能:可以实现键盘输入数据到程序当中. 引用类型的一般使用步骤:(Scanner是引用类型的) 1.导包 imp ...
- Android 调用摄像头功能【拍照与视频】
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ma_hoking/article/details/28292973 应用场景: 在Android开发 ...
随机推荐
- VSS错误自动修复
公司项目开发源代码管理一直用vss,从vss6.0用到vss8.0(vss2005),在近两年的试用中碰到一些大大小小的问题:1:vss服务迁移,这个比较好办,直接将整个vss目录拷贝过去,加上相应的 ...
- POJ 1419 Graph Coloring(最大独立集/补图的最大团)
Graph Coloring Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4893 Accepted: 2271 ...
- Redis 笔记与总结3 list 类型
redis 版本 [root@localhost ~]# redis-server --version Redis server v= sha=: malloc=jemalloc- bits= bui ...
- 一个项目软件的大小基本都占用在外部引用的jar包上了。
1.一个项目几百兆,基本都是外部jar包,引用的. 2.自己本身业务代码并没有那么多的 3.看下meven的仓库大小就知道了,都几百兆
- 西秦的ACE-Python教程 一、Python本地开发环境部署
西秦的ACE-Python教程 一.Python本地开发环境部署 西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信 只看楼主 更多操作楼主 发表于: 10-10 ...
- DirectX基础学习系列4 颜色和光照
4.1颜色表示 RGB颜色:D3DCOLOR 可以用宏D3DCOLOR_ARGB(a,r,g,b) D3DCOLOR_XRGB(255,r,g,b) 另外一种浮点表示:D3DCOLORVALUE, ...
- 用宏 x y z,找出最大值最小值
#define max(x,y,z) ((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z) #define min(x,y,z) ((x)<( ...
- java MVC架构-spring mvc,struct2(理解)
MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...
- rgb转灰度 RGB To Gray php Adobe RGB (1998) [gamma=2.20]
<?php /** * Date: 2016/10/24 * Time: 0:52 */ // Gray = (R^2.2 * 0.2973 + G^2.2 * 0.6274 + B^2.2 * ...
- db link的查看创建与删除(转)
1.查看dblink select owner,object_name from dba_objects where object_type='DATABASE LINK'; 或者 select * ...