CloudMonkeyをインストール
CloudMonkeyを利用して、CloudStack APIを利用する
運用しているクラウドサービスで毎日スナップショットを取得していますが、スナップショットの取得に失敗する場合があり、たまにスナップショット取得に失敗してそれ以降スナップショットが取得できないケースが有りました。
スナップショットの取得が成功しているかは、クラウドの管理画面にログインしたら確認できますが、毎日ログインするのは現実的ではないので、スナップショットの取得状況をメールで送るようにしたいです
運用しているクラウドは、Apache CloudStack をベースとしているので、CloudStack API が利用できます。APIを呼ぶためにPython を使ってみましたがうまくいかなかったので「CloudMonkey」を利用してAPIの操作をしたいと思います
CloudMonkeyは、Python で開発されたパッケージで、CloudStackのCLIで操作するツールです。
CloudMonkeyインストール
CloudMonkeyは、以下のコマンドでインストールできます
$ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py| python $ sudo pip install cloudmonkey $ cloudmonkey -v cloudmonkey 5.3.3
CloudStack を利用するには、下記の情報が必要ですのでクラウドの管理画面とかで所得しておきます¥
- ユーザー名
- パスワード
- ドメイン名
- 接続先 URL(エンドポイント)
- API キー
- シークレット キー
CloudMonkeyを利用するユーザーで、CloudMonkeyを一度起動します。起動すると実行したユーザーのホームディレクトリに「.cloudmonkey」のディレクトリが作成され、設定ファイルなどが保存されます。
$ cloudmonkey ☁ Apache CloudStack 🐵 (legacy) cloudmonkey 5.3.3. Please switch to latest Go-based version https://github.com/apache/cloudstack-cloudmonkey/releases. For usage see https://github.com/apache/cloudstack-cloudmonkey/wiki. Type help or ? to list commands. Using management server profile: altus-basic # [exit]コマンドで、cloudmonkeyから抜けます (test-cloud) > exit Bye! # [.cloudmonkey]のディレクトリができているか確認します $ ls -l .cloudmonkey/ total 236 -rw-rw-r-- 1 admin admin 664 Apr 21 14:10 config -rw-rw-r-- 1 admin admin 444 Apr 21 14:00 config_bak -rw------- 1 admin admin 317 Apr 24 10:30 history -rw-rw-r-- 1 admin admin 226829 Apr 24 10:30 log
設定ファイルが作成されたら、下記のように必要な情報を設定します
$ vi .cloudmonkey/config [core] profile = test-cloud asyncblock = true paramcompletion = true history_file = /home/admin/.cloudmonkey/history cache_file = /home/admin/.cloudmonkey/cache log_file = /home/admin/.cloudmonkey/log [ui] color = true prompt = > display = default [test-cloud] username = [ユーザー名] domain = [ドメイン] apikey = [APIキー] url = [接続先 URL(エンドポイント)] expires = 600 signatureversion = 3 secretkey = [シークレット キー] timeout = 3600 password = [パスワード] verifysslcert = true
設定が終わったので、ゾーン一覧のAPIを使って確認しようと思いましたが、「Error on parsing and printing 'teal’」とエラーになりました
$ cloudmonkey (test-cloud) > list zones Error on parsing and printing 'teal'
上記のエラーですが、私の環境では、設定ファイルの「color = true」を「color = false」に変更したらエラーは解消されました
$ vi .cloudmonkey/config [ui] color = false prompt = > display = default
設定ファイルを変更したら、エラー無くゾーン一覧が表示されました。次回の記事で「cloudmonkey」を利用して、スナップショット情報をメールで送るスクリプトを作成していこうと思います
$ cloudmonkey (test-cloud) > list zones count = 3 zone: name = xxx-xxxxx id = xxxxxxxxxx-xxx-xxx-xxx-xxxxx allocationstate = Enabled dhcpprovider = VirtualRouter domain = xxxxx.internal localstorageenabled = False networktype = Basic securitygroupsenabled = True tags: zonetoken = xxxxx-xxxxx-xxxxx-xxxxx
ディスカッション
コメント一覧
まだ、コメントがありません