Quantcast
Channel: しのぶら!!! » sawanoboly
Viewing all articles
Browse latest Browse all 15

ZcloudのAPIでマシン作成

$
0
0

米JoyentのSmartDataCenterが使えるZ CloudではJSONベースのAPIを使えるようになっている。

ドキュメントはまだ一般公開されていないが機能利用はOK、使ってみます。

APIトークンをGETしよう

サインアップ後にアカウント管理画面を見ると、右上にAPIキーのコーナーがある。

z-api-token-2.jpg

APIキーの取得はこれでOK

作成可能なマシンの一覧を取得しよう

今回APIとのやり取りはGoogleChromeのエクステンション、POSTMANで行いました、使いやすいRESTクライアントです。

ヘッダにX-API-KEYを追加、先ほど取得したトークンを入れてリクエスト。

作成可能なリストは/products.json

https://my.z-cloud.jp/products.jsonで作成可能なデータセットとパッケージの一覧が取得できます。

zcloudapi2.jpg

※図ではmachines.jsonなので適宜必要なAPIのパスに変更する。

レスポンスのBodyはこんな感じ。

[
    {
        "category": "SmartOS",
        "created_at": "2012-12-17T17:12:51Z",
        "deleted_at": null,
        "disk": "30GB",
        "display_order": 1,
        "id": 137,
        "image_url": "/assets/smartos.png",
        "kind": "SmartOS",
        "memory": "1GB",
        "name": "SmartOS Small 1",
        "os": "SmartOS",
        "price": "8.1",
        "sdc_cpucap": 200,
        "sdc_dataset": "sdc:sdc:base64:1.8.4",
        "sdc_disk": 30720,
        "sdc_memory": 1024,
        "sdc_package": "Small_1GB",
        "sdc_vcpus": 1,
        "series": "SmartMachine",
        "subject": "Machine",
        "summary": "SmartOSはOpenSolarisベースの仮想OSで、高性能、堅牢、強力な分析機能が提供されます。",
        "trial_period": null,
        "updated_at": "2012-12-17T17:12:51Z",
        "vendor_url": "http://www.joyent.com/products/smartos/"
    }
]

実際は全ての組み合わせが出てくるので結構数が多いです。

マシンを作成しよう

マシンを作成するにはRESTよろしくmachinesリソースをcreateのためPOSTします、GETならマシン一覧が。

https://my.z-cloud.jp/machines.jsonにPOSTする内容は下記のようにデータセットとパッケージを指定したJSONです。

{
        "dataset": "sdc:sdc:base64:1.8.4",
        "package": "Small_1GB",
        "name": "testmachine01"
}

SmartDataCenterには応用として便利に使えるmetadataというパラメータがありますが、ここはひとまず省略して作成しましょう。

ヘッダのContent-TYpe: application/jsonをつけて、POST。 zcloudapi4.jpg

これで新しくマシンが1つ作成されました。

作成されたマシンのデータを取得

レスポンスのBodyにマシン情報が入ってます。

zcloudapi3.jpg

ちなみに単体の情報は/machines/{マシンID}.jsonで取得できます。

{
    "id": "3dedfab7-9704-481c-b994-f37db2252ff2",
    "name": "testmachine01",
    "type": "smartmachine",
    "state": "provisioning",
    "dataset": "sdc:sdc:base64:1.8.4",
    "memory": 1024,
    "disk": 30720,
    "ips": [
        "210.152.137.50"
    ],
    "metadata": {},
    "created": "2013-01-03T11:29:46+00:00",
    "updated": "2013-01-03T11:29:46+00:00",
    "account_id": 27,
    "os": "SmartOS",
    "kind": "SmartOS",
    "package": "Small_1GB",
    "subdomain": null,
    "alert": null
}

作成したマシンにログイン

とりあえずsshで。

zcloudapi04.jpg

だいぶ手軽にサーバの作成ができるようになっています。

応用編:user-script, user-data

マシンの作成や情報の更新ではSDCの機能Metadata APIが使えます、Joyent SmartDataCenterはこれを活用して色々やるようになっているのでそのうち紹介できればと思います。

Using the Metadata API >> http://wiki.joyent.com/wiki/display/sdc/Using+the+Metadata+API


Viewing all articles
Browse latest Browse all 15

Trending Articles