通过 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 功能的更多相关文章

  1. python调用openstack的api,create_instance的程序解析

    python调用openstack的api,create_instance的程序解析 2017年10月17日 15:27:24 CloudXli 阅读数:848   版权声明:本文为博主原创文章,未经 ...

  2. OpenStack功能简介

    为什要用云? 一.简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱 二 ...

  3. 【原创】web端高德地图javascript API的调用

    关于第三放地图的使用,腾讯.百度.高德 具体怎么选择看你自己怎么选择了. 高德地图开放平台:http://lbs.amap.com/ 本次使用的是高德的javascript API http://lb ...

  4. 百度AI开放平台- API实战调用

    百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...

  5. 利用有道翻译Api实现英文翻译功能

    有道翻译提供了翻译和查词的数据接口.通过数据接口,您可以获得一段文本的翻译结果或者查词结果.       通过调用有道翻译API数据接口,您可以在您的网站或应用中更灵活地定制翻译和查词功能. 第一步: ...

  6. web端高德地图javascript API的调用

    [转载https://www.cnblogs.com/zimuzimu/p/6202244.html]web端高德地图javascript API的调用 关于第三放地图的使用,腾讯.百度.高德 具体怎 ...

  7. netty实现远程调用RPC功能

    netty实现远程调用RPC功能 依赖 服务端功能模块编写 客户端功能模块编写 netty实现远程调用RPC功能 PRC的功能一句话说白了,就是远程调用其他电脑的api 依赖 <dependen ...

  8. 常用Java API之Scanner:功能与使用方法

    Scanner 常用Java API之Scanner:功能与使用方法 Scanner类的功能:可以实现键盘输入数据到程序当中. 引用类型的一般使用步骤:(Scanner是引用类型的) 1.导包 imp ...

  9. Android 调用摄像头功能【拍照与视频】

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ma_hoking/article/details/28292973 应用场景: 在Android开发 ...

随机推荐

  1. JavaScript - prototype 和 call 的理解

    prototype: 其实对象直接通过 [object.属性/方法]  来定义方法和属性也是可以的,但是会变成静态属性和静态方法,也就是调用的时候也是通过“.”来调用的.但如果通过prototype来 ...

  2. [转]Efficiently Paging Through Large Amounts of Data

    本文转自:http://msdn.microsoft.com/en-us/library/bb445504.aspx Scott Mitchell April 2007 Summary: This i ...

  3. java语法基础思维导图

  4. Maven 私有库 Nexus的安装

    1.下载 Nexus下载地址:http://www.sonatype.org/nexus/go/ # wget https://sonatype-download.global.ssl.fastly. ...

  5. MAC环境下 nodejs 4.5.0 卸载

    MAC 环境下,我之前的删除 node 环境如果是用brew 安装的 node.js 4.4 之前的版本.可以网上参考其他方法,我之前的帖子也有之前的删除方法.参考帖子: http://www.cnb ...

  6. VMware 虚拟机使用 NAT 方式联网

    选择要设置的虚拟主机: 点击右键,选择 “属性”,查看 “网络适配器”: 此时选择的连接方式是 “Host-only”,在 Host-only 模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实 ...

  7. php防攻击方法

    php防攻击方法   更多答案 请参考 @如何有效防止XSS攻击/AJAX跨域攻击 我说下防止非法用户的一些常用手段吧 1 前端的js验证: 我认为js验证只是一种用户体验的提升,对普通用户群体的简单 ...

  8. 动态样式语言Less学习笔记

    介绍资料参见:http://www.bootcss.com/p/lesscss/ LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承,运算, 函数. LESS 既可以在 客户端 上运行 (支 ...

  9. 树莓派学Python博客收集

    http://www.geekfan.net/8657/  这个博客是控制LED,虽然不是原创地址不是这,但是我觉得排版比较好. http://my.oschina.net/RagingTyphoon ...

  10. DropzoneJS 使用指南

    原文链接http://segmentfault.com/a/1190000004045240 官方文档: http://www.dropzonejs.com/ Github: https://gith ...