1.3. APIクライアントの利用

警告

本章はWebサーバの設定など、サポート対象外の部分の記述を多く含みます。 必ずお客様ご自身で編集前設定のバックアップや設定項目の理解をされた上でのご実施をお願い致します。 また、本ソフトウェアに関しては、あくまで記載した環境での動作を確認したものを掲載しております。オープンソースソフトウェアに関する記載が含まれており、弊社では動作保証などをいたしかねますこと、予めご了承ください。

Cloudn Compute FLATタイプでは Apache Cloudstack (以下Cloudstack)を利用しており、 Cloudstackを操作するためのクライアントである、CloudMonkey [1] を利用することが可能です。

以下、例としてCloudMonkeyを利用するためのセットアップ方法を示します。
他のプラットフォームにおけるセットアップ方法や、トラブルシュート、その他詳細な使い方に関する情報は Cloudstack cloudmonkey CLI より参照してください。

紹介手順の前提条件

  • OS: CentOS6.5 オフィシャルテンプレート
の環境にて紹介いたします。
以下の手順で、cloudmonkeyのインストールが完了します。
# yum -y install python python-setuptools
# easy_install cloudmonkey

Cloudmonkeyのセットアップ

cloudmonkeyを起動し、必要な設定を実施します。

$ cloudmonkey
(これ以降はshellではなくcloudmonkey内でのコマンド実行)
> set url https://comp-api.jp-e1.cloudn-service.com/client/api
> set apikey ## APIアクセスキーIDを入力する
> set secretkey ## API秘密鍵を入力する
> exit

注釈

“set url”の引数にはエンドポイントを入力します

上記の例では”https://comp-api.jp-e1.cloudn-service.com/client/api“です。

注釈

“set apikey”ではAPIアクセスキーを、”set secretkey”ではAPI秘密鍵を入力します

上記がCloudMonkeyを利用するために最低限必要な設定となります。
CloudMonkeyの中でexitコマンドを実行することでshellへと抜けることができます。

CloudMonkeyの利用

“cloudmonkey”をシェルで入力し、Enterを実行して再度CloudMonkeyシェルに入ります。

#cloudmonkey
>

CloudMonkeyシェルに入った状態で、”API動詞 操作対象”のように入力することで、APIが利用可能です。

#cloudmonkey
> list virtualmachines
    {
      "count": 23,
      "virtualmachine": [
        {
          "account": "cln*******",
          "cpunumber": 1,
          "cpuspeed": 400,
          "created": "2014-07-10T14:23:44+0900",
          "displayname": "***************",
          "domain": "cln**************",
          "domainid": "*******-*****-*****-9de8-9df1f82721bb",
          "guestosid": "144",
          "haenable": true,
          "hypervisor": "KVM",
          "id": "*******-ab7e-42b3-9fac-************",
          "memory": 512,
          "name": "******-ab7e-42b3-9fac-************",
          "nic": [
            {
              "id": "******-ab7e-42b3-9fac-************",
              "isdefault": true,
              "networkid": "******-ab7e-42b3-9fac-************",
              "traffictype": "Guest",
              "type": "Shared"
            }
          ],
          "passwordenabled": true,
          "rootdeviceid": 0,
          "rootdevicetype": "Not created",
          "securitygroup": [
            {
              "description": "Default Security Group",
              "id": "******-ab7e-42b3-9fac-************",
              "name": "default"
            }
          ],
          "serviceofferingid": "200c6378-8ae9-4718-9b25-b8c4f6c1dfc8",
          "serviceofferingname": "t1.micro",
          "state": "Stopped",
          "tags": [],
          "templatedisplaytext": "CentOS 6.3 64 bit",
          "templateid": "33243e96-6d8c-4b3a-a28e-b8cbe25b0e12",
          "templatename": "CentOS 6.3 64 bit",
          "zoneid": "1b02e74c-6c21-4aa3-b96c-51042de8fccd",
          "zonename": "jp-e1a"
        }
    }

また、”api”というコマンドを利用することで、本APIリファレンスに記載されたAPIをそのまま利用することが可能です。

#cloudmonkey
> api listVirtualMachines
    {
      "count": 23,
      "virtualmachine": [
        {
          "account": "cln*******",
          "cpunumber": 1,
          "cpuspeed": 400,
          "created": "2014-07-10T14:23:44+0900",
          "displayname": "***************",
          "domain": "cln**************",
          "domainid": "*******-*****-*****-9de8-9df1f82721bb",
          "guestosid": "144",
          "haenable": true,
          "hypervisor": "KVM",
          "id": "*******-ab7e-42b3-9fac-************",
          "memory": 512,
          "name": "******-ab7e-42b3-9fac-************",
          "nic": [
            {
              "id": "******-ab7e-42b3-9fac-************",
              "isdefault": true,
              "networkid": "******-ab7e-42b3-9fac-************",
              "traffictype": "Guest",
              "type": "Shared"
            }
          ],
          "passwordenabled": true,
          "rootdeviceid": 0,
          "rootdevicetype": "Not created",
          "securitygroup": [
            {
              "description": "Default Security Group",
              "id": "******-ab7e-42b3-9fac-************",
              "name": "default"
            }
          ],
          "serviceofferingid": "200c6378-8ae9-4718-9b25-b8c4f6c1dfc8",
          "serviceofferingname": "t1.micro",
          "state": "Stopped",
          "tags": [],
          "templatedisplaytext": "CentOS 6.3 64 bit",
          "templateid": "33243e96-6d8c-4b3a-a28e-b8cbe25b0e12",
          "templatename": "CentOS 6.3 64 bit",
          "zoneid": "1b02e74c-6c21-4aa3-b96c-51042de8fccd",
          "zonename": "jp-e1a"
        }
    }

上記の様に、クライアントを利用することでAPIの実行に必要な署名・リクエストの作成といった作業が簡略化されます。 詳細な利用方法については、 Cloudstack cloudmonkey CLI を参照してください。

脚注

[1]Pythonで記述されたCLIからCloudStack APIを利用するためのツール。CloudMonkeyはApacheライセンスのもとオープンソースソフトウェアとして公開されており、Python 2.5以降が利用可能な環境で動作します。また、商用非商用を問わずに利用可能となっています。
[2]URLにて使用できない文字を別の文字に変換することです。(ex.) “/” -> “%2F” “+” -> “%2B” “=” -> “%3D”