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

 

LinuxCentOS 7

Posted by admin