CloudStackのAPI

提供: 釧路高専プロ研Wiki
移動先: 案内検索

CloudStackが提供するAPIを利用しましょう。 通常のWeb操作画面でも、裏ではこのAPIを利用しているらしいです。

APIキーの取得[編集]

CloudStackの使い方#パスワードの変更を参考に、「キーの取得」をしてください。

CloudMonkey[編集]

APIを叩く方法はいろいろあります。 当然、curlで叩いても良いですが、ここでは CloudMonkey という開発用のコマンドでAPIを利用してみます。

インストール[編集]

$ pip install cloudmonkey
$ cloudmonkey

初期設定[編集]

cloudmonkey> set host 157.114.164.1
cloudmonkey> set path /client/api
cloudmonkey> set protocol http
cloudmonkey> set port 8080
cloudmonkey> set apikey (ここにAPIキー)
cloudmonkey> set secretkey (ここに秘密鍵)

試しに,

cloudmonkey> list accounts

を実行し、エラーが出なければOKです。


「アカウント」と「ユーザ」[編集]

少しハマったところなので、説明します。 「1つのアカウントには1人以上のユーザが存在します」という記述があります。

これは、例えば「管理者用アカウント」があったとしてその中に「管理者A」「管理者B」を入れられるということです。 同じアカウント内に存在するユーザはすべて同じ権限権限で、アカウント内の仮想マシンを同じように操作できます。 ネットワークの分離もありません。

なので、同じサーバを管理したい場合は、各々自由にパスワードを決めてよいため便利かも知れません。 ただ、1つのユーザが複数のアカウントに所属することはできないため、面倒臭そうです(ドメインさえ分かれていれば、同一ID/PWでの登録は可能)。


APIの利用[編集]

使ってみます。

CloudMonkeyでは、「対話モード」「非対話モード」がありますが、ここでは全て「対話モード」で行います。 非対話モードでも、「$ cloudmonkey create account...」などとすれば同じです。

アカウントの作成[編集]

cloudmonkey> create account username=rikka firstname=Rikka lastname=Muromi password=prprprpr email=muromi@surugasystem.jp accounttype=0 domainid=hogehoge

長いですね。 項目の説明ですが、ほとんどの項目は説明せずとも大丈夫な名前をしているので省きます。省かれなかったのが以下です。

accounttype
アカウントの権限を決めます。
  • 0 = User権限
  • 1 = RootAdmin権限
  • 2 = DomainAdmin権限
domainid
アカウントの所属するドメインを決めます。 無指定の場合、「ROOT」が選ばれるようです。ROOTへアクセスする権限が無ければ権限エラーになります。 domainidは「list domains」などで出てきます。


インスタンスの作成[編集]

cloudmonkey> deploy virtualmachine serviceofferingid=hoge templateid=hage zoneid=foo domainid=bar diskofferingid=bba displayname=lolibba name=lolibba

項目については、

serviceofferingid
「list serviceofferings」で見つけましょう
templateid
「list templates templatefilter=featured」や「list templates templatefilter=all」で見つけましょう。
zoneid
「list zones」で
diskofferingid
「list diskofferings」から
displayname, name
オプションですが自動で決められる名前が長いので設定しておきます。同じ名前にしたほうがすっきりすると思います。


その他のAPI[編集]

Apache CloudStack API Documentationから、APIの名前を調べます。

そして、「Cloudmonkey (調べたAPIの名前)」や対話モードを利用することで、やりたいことができます。タブ補完本当に便利。