使うのは curl だけ
愚直にcurl
だけで作ります。
0. 前提
以下、リージョンはすべて「東京」とします。
1. API 用のアカウントを作成する
ここに書いてあるように、「API」のメニューより、パスワードを設定してユーザを作成します。
必要になるのは以下の値ですのでメモっておきます。
テナントID
- エンドポイントのうち、以下のアドレス
Identity Service
Compute Service
2. トークンを取得
「1.」に示した公式ドキュメントに書いてあるとおりです。以下のコマンドを実行します。
$ curl -i -X POST -H "Accept: application/json" -d '{ "auth": { "passwordCredentials": { "username": "APIユーザーのユーザー名", "password": "APIユーザーのパスワード" }, "tenantId": "テナント情報のテナントID" } }' "Identity ServiceのURLの後ろに/tokensを繋げる"
返ってくる JSON の["access"]["token"]["id"]
格納されている値がトークンですのでこれもメモっておきます*1。
3. 追加するサーバの「プラン」を決める
「プラン」とはつまりはメモリ量のことです。以下のコマンドを実行すると、利用可能なプランが JSON で返ってきます。
$ curl -i -X GET -H "Accept: application/json" -H "X-Auth-Token: トークン" https://compute.tyo1.conoha.io/v2/テナントID/flavors
返ってきた JSON において、["flavors"][3]["name"] などに格納されているのがプランです。ここに例えば "g-1gb"という値 が入っていれば 1GB のプランになります。希望のプランの id
(例えば ["flavors"][3]["id"]の値)をメモっておきます。7efa7469-0d95-4f12-8450-6ae742294681
みたいな値です。
4. 追加するサーバに用いる「イメージ」を決める
「3.」と同様にしてサーバ作成時に用いる「イメージ」を決めます。利用可能な「イメージ」の一覧を取得するために、まずは以下のコマンドを実行します。
$ curl -i -X GET -H "Accept: application/json" -H "X-Auth-Token: トークン" https://compute.tyo1.conoha.io/v2/テナントID/images
返ってきた JSON において*2、["images"][23]["name"] などに具体的なイメージの名前が格納されています。ここでは Ubuntu 16.04 64bit を選びたいとします。
ここでいったん横道にそれますが、 ["images"][23]["name"] などには "vmi-ubuntu-16.04-amd64-unified" と "vmi-ubuntu-16.04-amd64-unified-20gb" のように、末尾に20gb
が付与されているものとそうでない値が存在していると思います。
この違いは、「20gb
が付与されているものは 512MBプラン用のイメージ」ということです*3。なので、512MB の「プラン」でサーバを追加する場合は20gb
が付与されているものを、そうでない場合は20gb
が付与されていないものを選びます。
ここでの例では 1GB のプランを選ぶことにしたいので、イメージとしては "vmi-ubuntu-16.04-amd64-unified" を選ぶことになります。
さて、「3.」と同様にイメージの id を取得します。["images"][23]["id"] のような場所に格納されている値です。"name" が "vmi-ubuntu-16.04-amd64-unified" であるものの id を取得すれば OK です。この id はメモっておきます。
5. サーバを追加する
ここまでの値が取得できているならば、以下のコマンドでサーバが追加できます。リージョンは東京、メモリは1GB、OSはUbuntu 16.04 64bit版 になります。
$ curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token: トークン" -d '{"server": {"adminPass": "APIアカウントのパスワード","imageRef": "イメージのID","flavorRef": "プランのID"}}' https://compute.tyo1.conoha.io/v2/テナントID/servers
無事 200
が返ってきたならば成功です。Webブラウザからの管理画面でサーバが追加されていることを確認してみて下さい。
補足
上記の内容をとAPIドキュメントを見比べれば分かるように、上記の内容は最低限度の実行内容です。現実的にはより細かいオプション指定を行う必要があるでしょう。