Getting Started

ここではIDCフロンティアが提供するIDCFクラウドのコマンドラインツールのインストールから簡単な使い方までを記載します。

コンテンツ一覧

インストール

コマンドラインツールはPythonで実装されておりGitHubで公開しており、Pythonのパッケージ管理ツールであるpipでインストールすることができます。
ここではGitHubからソースをダウンロードしてpipでインストールする手順を記載します。

Step1:gitとpipのインストール

gitとpipをインストールされていない場合は本手順でGitとpipをインストールしてください。

Step1-1:Mac OSXの場合

お使いの環境がMac OSXの場合は以下のコマンドでそれぞれインストールしてください。

$ sudo brew install git      
$
$ curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
$ sudo easy_install pip
$

Step1-2:Ubuntuの場合

お使いの環境がUbuntuの場合は以下のコマンドでそれぞれインストールしてください。

$ sudo apt-get install git
$
$ sudo apt-get install python-pip
$

Step1-3:CentOSの場合

お使いの環境がCentOSの場合は以下のコマンドでそれぞれインストールしてください。

$ sudo yum install git
$
$ sudo curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
$

Step2:パッケージインストール

お使いの環境がUbuntu、CentOSの場合は初期状態ではコンパイル環境が整っていないので、ここで必要なパッケージをインストールします。

Step2-1:Ubuntuの場合

お使いの環境がUbuntuの場合は以下のコマンドで必要なパッケージをインストールしてください。

$ sudo apt-get install update
$ sudo apt-get install gcc build-essential libxml2-dev libxslt1-dev python-dev
$

Step2-2:CentOSの場合

お使いの環境がCentOSの場合は以下のコマンドで必要なパッケージをインストールしてください。

$ sudo yum update
$ sudo yum install libxml2 libxml2-devel libxslt libxslt-devel gcc python-devel
$

Step3:コマンドラインツールインストール

Step2までの手順でコマンドラインツールをインストール準備が整いました。
以下のコマンドでインストールしてください。

$ sudo pip install git+https://github.com/idcf/cloudstack-api
$ cloudstack-api --version
cloudstack-api v0.10.1
$

正常にインストールされている場合は上記のようにversionが表示されます。
以上でインストールは終了です。お疲れさまでした!

簡単な使い方

コマンドラインツールでIDCFクラウドに接続して仮想マシンを作成するまでの簡単な手順を記載します。

Step1:APIキーとエンドポイントの確認

IDCFクラウドにログインして、アカウントのAPIキー、シークレットキー、APIエンドポイントを確認してください。
API > API Keyで確認することができます。

Step2:環境設定

Step1で取得したIDCFクラウドへの接続に必要な情報を設定します。
ホームディレクトリに、.idcfrcファイルを作成してエンドポイントなどを設定します。

[account]
host=${idcf_end_point}
api_key=${your_api_key}
secret_key=${secret_key} 

${idcf_end_point}、${your_api_key}、${secret_key}をStep1で確認したエンドポイント、APIキー、シークレットキーに読み替えてください。
安全のためにユーザーだけに読み取り、書き取り権限を設定します。

$ chmod 600 ~/.idcfrc   

Step3:設定確認

正常に設定されていたらlistZonesを実行すると以下のように表示されます。

$ cloudstack-api listZones
{
  "listzonesresponse": {
    "count": 1,
    "zone": [
      {
        "allocationstate": "Enabled",
        "dhcpprovider": "VirtualRouter",
        "id": "a117e75f-d02e-4074-806d-889c61261394",
        "localstorageenabled": false,
        "name": "tesla",
        "networktype": "Advanced",
        "securitygroupsenabled": false,
        "tags": [],
        "zonetoken": "bbbd8944-a3c5-3538-8a2a-71d93a788ab5"
      }
    ]
  }
}
$

Step4:コマンドシンタックス

基本的なコマンドシンタックスは以下となります。

$ cloudstack-api ${METHOD_NAME} --${option_name} ${option_value}

使えるメソッド一覧とメソッドに使用可能なオプションは以下のようにして表示させることができます。

$ cloudstack-api --help # メソッド一覧
$ cloudstack-api ${METHOD_NAME} --help # オプション一覧
$

また本ドキュメントサイトのAPI Referencesでもメソッド一覧と使用可能なオプションを確認することができます。

Step5:仮想マシン作成

ここでは実例としてコマンドラインツールを利用して仮想マシンを作成する手順を記載します。
仮想マシンを作成するメソッドdeployVirtualMachineでは以下の値を指定する必要がありますので、以下の値を確認する手順も記載します。

  • ゾーン
  • サービスオファリング
  • テンプレート

Step5-1:ゾーンの確認

$ cloudstack-api listZones -t id
+--------------------------------------+
|                  id                  |
+--------------------------------------+
| a117e75f-d02e-4074-806d-889c61261394 |
+--------------------------------------+
$

Step5-2:サービスオファリングの確認

<サービスオファリングとは作成する仮想マシンの性能に関係するものとなります>。以下のコマンドで確認することができます

$ cloudstack-api listServiceOfferings -t id,displaytext
+--------------------------------------+------------------------------------+
|                  id                  |            displaytext             |
+--------------------------------------+------------------------------------+
| 12e39b73-3ce6-4e57-9036-3dac0c2b2b06 | highmem.M16( 2CPU / 16GB RAM )     |
| 354c62e6-b99b-42f2-b5c7-e741f1085422 | standard.XL32( 8CPU / 32 GB RAM )  |
| 435c1aab-e796-42c7-9320-22ebdc8f50aa | highcpu.L8( 4CPU / 8GB RAM )       |
| 55621f17-4d38-457c-ba34-e6199701b67b | standard.S4( 1CPU / 4GB RAM )      |
| 6a99ff4c-1a24-4aa6-b4cc-600220987ed0 | standard.L16( 4CPU / 16GB RAM )    |
| 6fda5e0c-e64d-46ea-893d-7e2ac9e128e7 | highcpu.XL16 ( 8CPU / 16GB RAM )   |
| 7ae143a6-5662-4f1d-bc4c-10defa775bcb | standard.M8( 2CPU / 8GB RAM )      |
| 7c548831-427b-437c-9c8b-80dde8031303 | highcpu.2XL32( 16 CPU / 32GB RAM ) |
| 8cf15770-c3c8-4efc-8ae5-b8327790db76 | highcpu.M4( 2CPU / 4GB RAM )       |
| d1aac6d2-bb47-4106-90d0-6a73ac3ae78e | light.S2( 1CPU / 2GB RAM )         |
| d59817bc-ed79-4083-8b71-51b26c76d311 | highmem.L32( 4CPU / 32GB RAM )     |
| e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 | light.S1( 1CPU / 1GB RAM )         |
| ee5ee568-76b2-46ad-9221-c695e6f2149d | highmem.XL64( 8CPU / 64GB RAM )    |
+--------------------------------------+------------------------------------+
$

Step5-3:テンプレートIDの確認

$ cloudstack-api listTemplates --templatefilter executable -t id,ostypename
+--------------------------------------+---------------------------------------+
|                  id                  |               ostypename              |
+--------------------------------------+---------------------------------------+
| 275896bd-4f4a-429d-a3ad-4c5273978951 | Windows Server 2008 R2 (64-bit)       |
| 2e5ced0d-13cd-4848-93e6-6e6a0571ffc3 | CentOS 6.4 (64-bit)                   |
| 33134882-9eee-45f5-8520-51ff8f3b9ec9 | Ubuntu 12.04 (64-bit)                 |                
...省略...
$

Step5-4:仮想マシン作成

以下のコマンドでdev-2というマシン名、auenoというグループ名、auenoというSSHキーで仮想マシンを作成します。

$ cloudstack-api deployVirtualMachine \
--serviceofferingid 55621f17-4d38-457c-ba34-e6199701b67b \
--templateid b2d2a4fa-d694-444b-b961-0a0f9d7fe0f3 \
--zoneid a117e75f-d02e-4074-806d-889c61261394 \
--group aueno \
--keypair aueno \
--name dev-2
$

Step5-5:作成、起動確認

問題なければ以下のようにStep4で指定した仮想マシンがRunning状態となっているはずです。

$ cloudstack-api listVirtualMachines -t id,name,group,state
+--------------------------------------+--------+-------+---------+
|                  id                  |  name  | group |  state  |
+--------------------------------------+--------+-------+---------+
| 288cd184-c98f-4062-905a-a73018409845 | dev-2  | aueno | Running |
+--------------------------------------+--------+-------+---------+
$

他のメソッドやより詳細なメソッドの内容についてはAPI Referencesを参照してください。

バージョンアップ手順

コマンドラインツールのバグ改修などで最新版のバージョンが変更になることがあります。
以下のコマンドでコマンドラインツールの最新版にバージョンアップすることができます。

$ sudo pip install git+https://github.com/idcf/cloudstack-api.git -U
$