Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

CloudStack APIの使用方法(CloudStack CLIやcloudmonkeyと呼ばれるツール)

 

こんにちは、鯨井貴博@opensourcetechです。

 

 

本日は、CloudStackにおけるAPIを使ってみました。

少し複雑なので忘れないように記録に残しておこうと思います。

 

なお、CloudStack環境については、

devcloud2にて4.3.0で予め構築済みであるものとします。

 

まずは、ログイン。

デフォルトアカウントのadmin/passwordでログインします。

f:id:opensourcetech:20141014140710p:plain

 

f:id:opensourcetech:20141014140718p:plain

 

 

ログイン後は、

メニューのアカウント > adminと辿ります。

f:id:opensourcetech:20141014140724p:plain

 

そして、右側にある「表示-ユーザー(view users)」をクリックします。

f:id:opensourcetech:20141014140733p:plain

 

その後、またadminというユーザーが表示されるのでクリックします。

f:id:opensourcetech:20141014140739p:plain

 

adminの詳細にて、キーの作成というアイコンをクリックすると、

f:id:opensourcetech:20141014140746p:plain

 

確認画面が表示されるので、「はい」とします。

f:id:opensourcetech:20141014140751p:plain

 

これで、APIの使用に必要なAPIキーと秘密キーが生成されました。

f:id:opensourcetech:20141014140755p:plain

 

続いて必要なソフトウェアの準備を行います。

devcloud2はdebian(ubuntu)で構築されているので、

apt-get update

f:id:opensourcetech:20141014140803p:plain

 

apt-get install python-pip

f:id:opensourcetech:20141014140810p:plain

 

pip install cloudmonkey

f:id:opensourcetech:20141014140814p:plain

 

CLIより、clundmonkeyコマンドを実行すると、

専用のプロンプトに切り替わります。

f:id:opensourcetech:20141014140818p:plain

 

プロンプトから、

CloudStackの環境に関する情報を設定していきます。

set host 192.168.56.10

※必要に応じて、set port 8080

set apikey K-cl8myjg1MFy4OePMJO2HMZrjwuF4Yp7RxOUPAOoJoHB7YuP5C6lpQJZ-4ig17NKsm2SWTN0Dps0hChR-N0Ng

set secretkey whNU99u4x5rIW3fYjgZ6OUPcSpUO0gqJmKzICS66TfBMHYVreVG4Ll-pnv3RjYD3-XOU9VPIz0MAAqzVNTYYng

 

設定入力後は、syncとします。

 

なお、今回はテスト用に行っているのでいいと思いますが、

本来はapikeyやsecretkeyは非公開とし、

万が一、流出してしまった場合、再度キーの作成を行います。

f:id:opensourcetech:20141014140822p:plain

 

あとは、確認したい情報をコマンドラインから取得します。

 

例えばゾーン情報を確認したい場合、list zones

f:id:opensourcetech:20141014140827p:plain

 

ポッドなら、list pods

f:id:opensourcetech:20141014140832p:plain

 

また、listだけでなく「?」とすると他に使用可能なコマンドが確認出来ます。

f:id:opensourcetech:20141014140842p:plain

 

その他の便利機能としては、

コマンド名や引数へのタブ補完、

f:id:opensourcetech:20141014142600p:plain

 

set display jsonJSON形式での表示、

f:id:opensourcetech:20141014142613p:plain

 

set display tableでテーブル形式での表示、

f:id:opensourcetech:20141014142622p:plain

 

set displayでデフォルト表示型式に戻す などがあります。

f:id:opensourcetech:20141014142628p:plain

 

上記はLinuxコマンドラインから直接実行も出来ます。

f:id:opensourcetech:20141014162343p:plain

f:id:opensourcetech:20141014162351p:plain

 

また、実行ユーザーのホームディレクトリ配下に、

.cloudmonkeyという隠しディレクトリが出来、

その中のhistoryからコマンド履歴が確認出来ます。

f:id:opensourcetech:20141014162441p:plain

 

 

 

ブラウザからも同様のAPIは使用出来、

http://192.168.56.10:8080/client/api?command=******&apikey=******&signature=aaaaa

とすれば、実行出来るようです。

 

command=******&apikey=******は、コマンド文字列等、

signature=aaaaaは、コマンド文字列等をSHA1で署名し、Base64エンコード後、

URLエンコードしたものとなります。

 

詳細は、以下が参考になります。

4.3. Signing API Requests

 

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

Opensourcetech by Takahiro Kujirai