通过 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开发 ...
随机推荐
- lightning mdb 源代码分析(1)
lighting mdb(lmdb) 是一个高性能mmap kv数据库,基本介绍和文档参见symas官网,本文将尝试分析其源代码结构以理解数据库设计的关键技术. 本系列文章将尝试从以下几个方面进行分析 ...
- Leetcode | Parentheses 相关
Generate Parentheses Given n pairs of parentheses, write a function to generate all combinations of ...
- sql 语句大小写的问题
关键字不区分大小写 例如 select ,from, 大小写均可 标识符区分大小写 例如 表名,列名 标识符如果不加双引号,默认是按大写执行 标识符如果加双引号,则是按原始大小写执行 但是,当表名加上 ...
- 在Copy-Item中集成认证信息以拷贝文件
$source = "c:\XXX.XXX" $pw = ConvertTo-SecureString '密码' -AsPlainText -Force $Creds = New- ...
- NBU7.0 Image Cleanup作业在没有配置hot catalog backup的情况下失败,Status=1
Issue NBU7.0 Image Cleanup作业在没有配置hot catalog backup的情况下失败,Status=1 Error NBU7.0 Image Cleanup作业失败, D ...
- Linux网桥设置
1. sudo apt-get install bridge-utils 2. brctl --help Usage: brctl [commands] commands: ad ...
- Export-XLSX PowerShell generate real Excel XLSX files without Excel and COM
http://gallery.technet.microsoft.com/scriptcenter/Export-XLSX-PowerShell-f2f0c035
- VC++6.0 显示行号
通过VC6LineNumberAddin能够解决这个问题,方法如下. 一.下载该文件. 网上很多免费的. 二.使用方法: [1]:打开VC++6.0,点击菜单“工具(Tools) ...
- PHP OO 编程笔记
1. 类中的方法不是全局方法,可以和外部的普通方法重名,例如: <?php function time(); 则会报错:不能重新声明方法 Fatal error: Cannot redeclar ...
- lambda表达式对比
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...