DeltaCloudを触ってみる

DeltaCloudとは、各クラウドサービスのAPIの上にAPIをかぶせて、
複数のクラウドサービスを統一のAPIで扱えるようにするものらしいです。

とりあえず公式のページに行くといろいろと情報がありました。

http://incubator.apache.org/deltacloud/index.html

ここのDownloadっていうところを見るとインストール方法等書かれています。

どうやらgemパッケージらしいです。
ということで、とりあえずrubyのインストールとrubygemsのインストールを実施します。

導入

rubyインストール

# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p180.tar.gz
# tar xvzf ruby-1.9.2-p180.tar.gz
# cd ruby-1.9.2-p180
# ./configure --prefix=/usr/local/ruby
# make
# make install
# export PATH=/usr/local/ruby/bin:$PATH

rubygemsインストール

# wget http://rubyforge.org/frs/download.php/74619/rubygems-1.7.2.tgz
# tar xvzf rubygems-1.7.2.tgz
# cd rubygems-1.7.2
# ruby setup.rb

deltacloudインストール

# gem install deltacloud-core
Fetching: haml-3.0.25.gem (100%)
Fetching: rack-1.1.0.gem (100%)
Fetching: tilt-1.2.2.gem (100%)
Fetching: sinatra-1.2.3.gem (100%)
Fetching: rack-accept-0.4.3.gem (100%)
Fetching: json-1.5.1.gem (100%)
Building native extensions.  This could take a while...
Fetching: deltacloud-core-0.1.2.gem (100%)
Successfully installed haml-3.0.25
Successfully installed rack-1.1.0
Successfully installed tilt-1.2.2
Successfully installed sinatra-1.2.3
Successfully installed rack-accept-0.4.3
Successfully installed json-1.5.1
Successfully installed deltacloud-core-0.1.2
7 gems installed
Installing ri documentation for haml-3.0.25...
Installing ri documentation for rack-1.1.0...
Installing ri documentation for tilt-1.2.2...
Installing ri documentation for sinatra-1.2.3...
Installing ri documentation for rack-accept-0.4.3...
Installing ri documentation for json-1.5.1...
Installing ri documentation for deltacloud-core-0.1.2...
Installing RDoc documentation for haml-3.0.25...
Installing RDoc documentation for rack-1.1.0...
Installing RDoc documentation for tilt-1.2.2...
Installing RDoc documentation for sinatra-1.2.3...
Installing RDoc documentation for rack-accept-0.4.3...
Installing RDoc documentation for json-1.5.1...
Installing RDoc documentation for deltacloud-core-0.1.2...

付随していろいろgemが入ります。

これでとりあえず導入完了。

中身確認

ソースコードの中をちょっとチェックしてみます。
ちょっと階層が深いですが、中に入ってみるとこんな感じでクラウドサービスの名前がついたdriver達があります。

# ls /usr/local/ruby/lib/ruby/gems/1.9.1/gems/deltacloud-core-0.1.2/lib/deltacloud/drivers/
azure  ec2  gogrid  mock  opennebula  rackspace  rhevm  rimuhosting  terremark

どうやらこのdriver達が各サービスのAPIを扱えるようにしているようです。

起動

とりあえずdeltaclouddというデーモンが用意されているようなので起動してみます。

# deltacloud -i mock -r xxx.xxx.xxx.xxx -p 3001

これでIPアドレスxxx.xxx.xxx.xxxでdeltaclouddのサービスがポート3001で稼働します。

  • rと-pを省略すると、localhost 3001で稼働します。

アクセス

ブラウザからhttp://xxx.xxx.xxx.xxx:3001/apiにアクセスします。
すると、こんな画面が表示されます。

この画面から各サービスに対して操作ができるのかもしれません。
とりあえず各リンクをクリックすると認証がかかっているので、この辺りの設定とかをしないといけないようです。
各操作に関する解説はDocumentationのリンクからたどれます。
基本的な操作はカバーしているようです。