概要
https://github.com/exoscale/cs
Pythonで作られてるCloudStackAPIクライアントツールです。
Pythonライブラリとして使えるし、コマンドラインからも使用可能です。
インストール
# pip install cs
設定
APIキー作成
-
CloudStackログインして、[Accounts] - [Add Account] クリックします。
-
必要な項目入力してアカウント作成します。
-
作成したアカウントをクリックします。
-
[View Users]をクリックします。
-
ユーザをクリックします。
-
[Generate Keys]の鍵マーククリックしてAPIキーとシークレットキー作成します。
-
[Yes]クリックして鍵作成します。
CSコンフィグ作成
# vi $HOME/.cloudstack.ini
# cat $HOME/.cloudstack.ini
[cloudstack]
endpoint = http://127.0.0.1:8080/client/api
key = 作成したAPIキー
secret = 作成したシークレットキー
# Optional ca authority certificate
#verify = /path/to/certs/exoscale_ca.crt
# Optional client PEM certificate
#cert = /path/to/client_exoscale.pem
確認
- csでCloudStackのAPI実行
# cs listAccounts
{
"account": [
{
"accounttype": 1,
"cpuavailable": "Unlimited",
"cpulimit": "Unlimited",
"cputotal": 0,
"domain": "ROOT",
"domainid": "22af9a1c-3ea1-11e8-a452-525400ad3b43",
"groups": [],
"id": "491981f7-11b5-4334-a24a-1a9609ad4392",
"ipavailable": "Unlimited",
"iplimit": "Unlimited",
"iptotal": 0,
"isdefault": false,
"memoryavailable": "Unlimited",
"memorylimit": "Unlimited",
"memorytotal": 0,
"name": "test",
"networkavailable": "Unlimited",
"networklimit": "Unlimited",
"networktotal": 0,
"primarystorageavailable": "Unlimited",
"primarystoragelimit": "Unlimited",
"primarystoragetotal": 0,
"projectavailable": "Unlimited",
"projectlimit": "Unlimited",
"projecttotal": 0,
"roleid": "42660e99-3ea1-11e8-a452-525400ad3b43",
"rolename": "Root Admin",
"roletype": "Admin",
"secondarystorageavailable": "Unlimited",
"secondarystoragelimit": "Unlimited",
"secondarystoragetotal": 0,
"snapshotavailable": "Unlimited",
"snapshotlimit": "Unlimited",
"snapshottotal": 0,
"state": "enabled",
"templateavailable": "Unlimited",
"templatelimit": "Unlimited",
"templatetotal": 0,
"user": [
{
"account": "test",
"accountid": "491981f7-11b5-4334-a24a-1a9609ad4392",
"accounttype": 1,
"apikey": "xxxxxxxxxxx",
"created": "2018-04-12T23:38:04+0000",
"domain": "ROOT",
"domainid": "22af9a1c-3ea1-11e8-a452-525400ad3b43",
"email": "hoge@example.com",
"firstname": "test",
"id": "9a79d059-f741-48d3-9ea4-095b37d8e646",
"iscallerchilddomain": false,
"isdefault": false,
"lastname": "test",
"roleid": "42660e99-3ea1-11e8-a452-525400ad3b43",
"rolename": "Root Admin",
"roletype": "Admin",
"state": "enabled",
"timezone": "JST",
"username": "test",
"usersource": "native"
}
],
"vmavailable": "Unlimited",
"vmlimit": "Unlimited",
"vmrunning": 0,
"vmstopped": 0,
"vmtotal": 0,
"volumeavailable": "Unlimited",
"volumelimit": "Unlimited",
"volumetotal": 0,
"vpcavailable": "Unlimited",
"vpclimit": "Unlimited",
"vpctotal": 0
}
],
"count": 1
}