2016年5月20日金曜日

IDCFクラウドをAPIから使う(準備編)

このエントリーをはてなブックマークに追加
コストの試算を考えるとめんどくさいですけど、クラウドいいですよね。スモールスタートしながらスピード感出して構築できるし。

AWSは押さえておかないといけないですが、今のところ、仕事上、コスト計算しやすいとか大人の事情とかでIDCFクラウドを使うことが多いです。クラウドコンソールからコツコツ作るのもできるけど、せっかくのクラウドなのでAPIからサーバ構築していきたいかなと。基盤にはCloudStackを採用しているようなので、その勉強にもなるし。

ドキュメントはIDCFクラウド API/技術ドキュメントにあるので、これを参照しながら手順はほぼ写経。
gitとpipのインストール

色々と必要なものをインストールしておく。
$ apt-get install --install-suggests git python-pip
 $ apt-get install --install-suggests gcc build-essential libxml2-dev libxslt1-dev python-dev
cloudstack-apiをインストールする。
 $ pip install git+https://github.com/idcf/cloudstack-api
バージョン確認する。
 $ cloudstack-api --version
APIを利用するために設定ファイル(.idcfrc)を作成する。
 
[account]
host=${idcf_end_point}
api_key=${your_api_key}
secret_key=${secret_key}
設定ファイルが効いているか確認する。
 $ cloudstack-api listZones
こんな感じでずらずらと出てきたら成功。
{
  "listzonesresponse": {
    "count": 5,
    "zone": [
      {
        "allocationstate": "Enabled",
        "dhcpprovider": "VirtualRouter",
:
:
:
利用できるゾーンの確認。ちなみに-tは結果をテーブル形式で出力する。何もなければJSON形式で出力される。
 
$ cloudstack-api listZones -t id
+--------------------------------------+
|                  id                  |
+--------------------------------------+
| 9703cdbb-aee7-41ba-ba80-4807eaa68b80 |
| a117e75f-d02e-4074-806d-889c61261394 |
| a53ff3d3-042b-4cbd-ad16-494bb8d33e06 |
| baf86a6e-4e3b-428e-8fd0-7fda43e468d4 |
| f0954b9b-2626-4549-82ad-ca421073b3bc |
+--------------------------------------+
利用できるサーバタイプの確認
 
$ cloudstack-api listServiceOfferings -t id,displaytext
+--------------------------------------+------------------------------------+
|                  id                  |            displaytext             |
+--------------------------------------+------------------------------------+
| 10d303d6-d39f-4b15-80a1-982e86ef002b | highio.3XL128( 24CPU /128GB RAM)   |
| 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 )       |
| 95edba75-7cb5-4654-a2f5-f40b7acf7a57 | standard.S8( 1CPU / 8GB RAM )      |
| 9a2f3ee4-af46-4790-9331-753674c16e68 | highio.5XL128( 40CPU /128GB 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 )         |
| ec13a7d8-26ce-4c4e-a223-7ef832bb1243 | light.S2( 1CPU / 2GB RAM )         |
| ee5ee568-76b2-46ad-9221-c695e6f2149d | highmem.XL64( 8CPU / 64GB RAM )    |
+--------------------------------------+------------------------------------+
利用できるテンプレートの確認
 
$ cloudstack-api listTemplates --templatefilter executable -t id,ostypename
+--------------------------------------+---------------------------------------+
|                  id                  |               ostypename              |
+--------------------------------------+---------------------------------------+
| 06c0be30-95e0-4f90-9af5-aa0637974e9b | CentOS 6.4 (64-bit)                   |
| 08d914bc-c632-4179-95ca-7913aca0275e | Red Hat Enterprise Linux 6.4 (64-bit) |
| 107a7aba-0867-4fa6-927d-772944208ba9 | CentOS 6.4 (64-bit)                   |
| 180ec450-2570-4d6c-b2c0-c40316814025 | CentOS 6.4 (64-bit)                   |
| 180ec450-2570-4d6c-b2c0-c40316814025 | CentOS 6.4 (64-bit)                   |
:
:
後は作っていこう。

0 件のコメント:

コメントを投稿