CloudStack 的 OCCI 接口

CloudStack有它自己的 API。像libcloud和 jclouds之类的 Cloud封装器与这个原生的API协作的很好,但是 CloudStack并没有像OCCI 与 CIMI 那样暴露出任何标准的API 。我们 (事实上就是Isaac Chiang ,我刚刚验证过并给他指出了正确的方向) 开始用我们的CloudStack ruby gem (译注:gem是一种文件组织的包,一般ruby的很多插件都由各种这样的包提供。)来做一个CloudStack 后端的 rOCCI 。之所以选择 rOCCI是因为现存的 Opennebula后端(译注:OpenNebula是开放原码的虚拟基础设备引擎,它用来动态布署虚拟机器在一群实体资源上,OpenNebula最大的特色在于将虚拟平台从单一实体机器到一群实体资源。)以及欧洲电网计划联合云测试平台采用了 OCCI 。

我们先来安装 rOCCI服务器,这项工作还没有合并到上层,所以你需要从 Isaac Chiang的分支(fork)开始工作。

1 git clone https://github.com/isaacchiang/rOCCI-server.git
2 bundle install
3 cd etc/backend
4 cp cloudstack/cloudstack.json default.json
编辑文件 defautl.json,让它包含有关你的 CloudStack 云的信息(例如apikey, secretkey, endpoint)。启动rOCCI 服务器:
1 bundle exec passenger start

服务器将运行在 http://0.0.0.0:3000 ,接着运行以下测试:

1 bundle exec rspec

这已经在CloudStack模拟器上以一个基本区域配置测试过了,请帮我们在生产云环境下再测试它。

你也可以试着用OCCI客户端。可以从Github安装这个rOCCI 客户端 :

1 git clone https://github.com/gwdg/rOCCI-cli.git
2 cd rOCCI-cli
3 gem install bundler
4 bundle install
5 bundle exec rake test
6 rake install

这样你就可以使用这个 OCCI客户端了:

1 occi --help

针对你之前启动的服务器来测试它。你需要一个运行中的CloudStack云。或者是一个生产云,或者是使用DevCloud的一个开发实例。这个云的凭证和端点应该已经输入在`default.json`文件中了,也就是你在前面部分所创建的那个文件。现在来测试几个OCCI客户端命令:

1 $ occi --endpoint http://0.0.0.0:3000/ --action list --resource os_tpl
2 Os_tpl locations:
3  os_tpl#6673855d-ce9b-4997-8613-6830de037a8f
4 $ occi --endpoint http://0.0.0.0:3000/ --action list --resource resource_tpl
5 Resource_tpl locations:
6  resource_tpl##08ba0343-bd39-4bf0-9aab-4953694ae2b4
7  resource_tpl##f78769bd-95ea-4139-ad9b-9dfc1c5cb673
8  resource_tpl##0fd364a9-7e33-4375-9e10-bb861f7c6ee7

你可以从模版中识别出`uuid`,还有你在CloudStack中创建的服务产品。若要启动一个实例的话,只需:

1 $ occi --endpoint http://0.0.0.0:3000/ --action create --resource compute
2        --mixin os_tpl#6673855d-ce9b-4997-8613-6830de037a8f
3        --mixin resource_tpl#08ba0343-bd39-4bf0-9aab-4953694ae2b4
4        --resource-title foobar

这样将会返回一个创建在这个资源之上的句柄。这样就完成了!

我们将继续改进这个驱动,以便向想要使用标准接口的用户提供一个具有高产品质量的OCCI接口。当然了,我们也会努力在一个CIMI上实现接口。在EGI云联盟上的许多云平台很有希望将会使用  CloundStack,以此来帮助我们改进这个OCCI接口。在  CloundStack,我们的目标是提供用户想要的接口,并保持这些接口是最新的和具有高产品质量的,这样用户就能够依赖它。

你可能感兴趣的:(qq,chrome,character,压力测试,Go语言编程)