Transcript
Page 1: RubyistのためのCloudStack APIコンソール

1/17第 16回 CloudStackユーザ会

RubyistのためのCloudStack APIコンソール

電気通信大学 中島 拓真

@penguin2716

Page 2: RubyistのためのCloudStack APIコンソール

2/17第 16回 CloudStackユーザ会

自己紹介

■所属:電気通信大学   情報システム学研究科(M1)

■研究:クラウド上の計算資源の効率利用■開発:mikutterプラグイン,

    CloudStack 3行スクリプト■ Twitter:ぺんぎんさん    @penguin2716

Page 3: RubyistのためのCloudStack APIコンソール

3/17第 16回 CloudStackユーザ会

CloudStackの操作方法

■ WebUIから– 最も簡単

■ APIを使って– CloudMonkey

https://cwiki.apache.org/confluence/display/CLOUDSTACK/CloudStack+cloudmonkey+CLI

– cloudstack_ruby_client (by chipchilders)https://github.com/chipchilders/cloudstack_ruby_client

Page 4: RubyistのためのCloudStack APIコンソール

4/17第 16回 CloudStackユーザ会

CloudStack WebUI

Page 5: RubyistのためのCloudStack APIコンソール

5/17第 16回 CloudStackユーザ会

CloudMonkey

■もはや標準の APIコンソール■パイプが使える

Page 6: RubyistのためのCloudStack APIコンソール

6/17第 16回 CloudStackユーザ会

CloudStack Ruby Client

■ CloudStackの APIを叩く Ruby実装■ Written by Chip Childers

Page 7: RubyistのためのCloudStack APIコンソール

7/17第 16回 CloudStackユーザ会

APIを利用する利点

■作業の自動化■自社製品との連携■端末からのデバッグ(皆さん日常的に端末利用してますよね?)

端末からの操作で捗る

Page 8: RubyistのためのCloudStack APIコンソール

8/17第 16回 CloudStackユーザ会

ところで

■皆さん日常的に端末使っていますよね> Yes

Page 9: RubyistのためのCloudStack APIコンソール

9/17第 16回 CloudStackユーザ会

ところで

■皆さん日常的に端末使っていますよね> Yes

■皆さん Ruby書けますよね> Yes

Page 10: RubyistのためのCloudStack APIコンソール

10/17第 16回 CloudStackユーザ会

ところで

■皆さん日常的に端末使ってますよね> Yes

■皆さん Ruby書けますよね> Yes

■皆さん GUIよりも CUIの方が好きですよね> Yes

Page 11: RubyistのためのCloudStack APIコンソール

11/17第 16回 CloudStackユーザ会

irb

■インタラクティブに Rubyのコードを実行■ Ruby標準でついてる

Page 12: RubyistのためのCloudStack APIコンソール

12/17第 16回 CloudStackユーザ会

pry

■インタラクティブに Rubyのコードを実行■ irbより高機能でカッコいい

Page 13: RubyistのためのCloudStack APIコンソール

13/17第 16回 CloudStackユーザ会

cloudstack_api_console

■ Rubyシンタックスが使えるCloudStackの APIコンソール– > listVirtualMachines.map{|vm|...}.each{|vm|...}

■様々な用途で捗る– 大量の VMを操作– 特定の条件を満たす VMを操作

Page 14: RubyistのためのCloudStack APIコンソール

14/17第 16回 CloudStackユーザ会

Why not CloudMonkey?

■我々は Rubyに慣れすぎた– forとか ifとか使いたい– mapとか selectとか使いたい– 「 Rubyでクライアントを書いた」「 Rubyでインタラクティブな操作したいよ」

■ CloudMonkey?– pipeで grepしたりできる– シェルではない

Page 15: RubyistのためのCloudStack APIコンソール

15/17第 16回 CloudStackユーザ会

色がつきます

■ Rubyシンタックスが使えるCloudStackの APIコンソール– > listVirtualMachines.map{|vm|...}.each{...}

– > result = listVirtualMachines

– > result.each{|vm| …}

■様々な用途で捗る– 大量の VMを操作– 特定の条件を満たす VMを操作

Page 16: RubyistのためのCloudStack APIコンソール

16/17第 16回 CloudStackユーザ会

デモ

■ git clone ↓↓はこちら

https://github.com/penguin2716/cloudstack_api_console.git

Page 17: RubyistのためのCloudStack APIコンソール

17/17第 16回 CloudStackユーザ会

まとめ

■ CloudStackの APIを利用しましょう■ CUIに慣れている皆さんに既存のコンソールはちょっと物足りない

■ Rubyを使うと CUIは 100倍使いやすくなる