さくらのクラウドの API を使ってみただけの話
さくらのクラウドで利用できる API を使ってみたメモです。メモだけ。
API の操作に必要な API キーはクラウドの管理画面にある「設定」→「API キー」とたどると作ったり確認したりできます。
ローカル側は Windows から FreeBSD 11.0-RELEASE-p7 に SSH 接続したターミナルの bash から curl で叩いています。
使う API キーとか URL は変数に格納しておきます。
$ export sandbox="https://secure.sakura.ad.jp/cloud/zone/tk1v/api/cloud/1.1/" $ export token="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" $ export secret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
以下に出てくる12桁のXはディスクのIDとかサーバーのIDとかそんな感じなので、適宜読み替える。
curl の実行結果を jq に渡しているのはレスポンスの JSON を整形して読みやすくしてるだけです。なくても OK。
サーバーの作成とか
まずはサーバープランのプラン ID を確認
$ curl --user "${token}:${secret}" -X GET ${sandbox}/product/server | jq "."
確認したプラン ID を使って1コア 1GB のサーバーを作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/server -d '{"Server":{"Name":"Test Server","ServerPlan":{"ID":1001}}}' | jq "."
続いてディスクプランのプラン ID を確認
$ curl --user "${token}:${secret}" ${sandbox}/product/disk | jq "."
確認したプラン ID から SSD プランで 20GB のディスクを作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/disk -d '{"Disk":{"Name":"Test Disk","Plan":{"ID":4},"SizeMB":20480}}' | jq "."
保持しているディスクの一覧を表示
$ curl --user "${token}:${secret}" -X GET ${sandbox}/disk | jq "."
作成したディスクを作成済みのサーバーに接続
$ curl --user "${token}:${secret}" -X PUT ${sandbox}/disk/XXXXXXXXXXXX/to/server/XXXXXXXXXXXX | jq "."
サーバーで利用するインターフェイスの作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/interface -d '{"Interface":{"Server":{"ID":XXXXXXXXXXXX}}}' | jq "."
サーバーがネットワークに出られるようにインターフェイスを共有セグメントに接続
$ curl --user "${token}:${secret}" -X PUT ${sandbox}/interface/XXXXXXXXXXXX/to/switch/shared | jq "."
セットしたサーバーの電源を入れる
$ curl --user "${token}:${secret}" -X PUT ${sandbox}/server/XXXXXXXXXXXX/power| jq "."
管理画面でサーバーを強制終了してからサーバーと共にディスクを削除
$ curl --user "${token}:${secret}" -X DELETE ${sandbox}/server/XXXXXXXXXXXX/ -d '{"WithDisk:XXXXXXXXXXXX}' | jq "."
アーカイブの操作
もういっちょ SSD プラン 20GB のディスクを作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/disk -d '{"Disk":{"Name":"Test Disk","Plan":{"ID":4},"SizeMB":20480}}'| jq "."
作成したディスクを元にアーカイブを作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/archive -d '{"Archive":{"Name":"Test Archive","SizeMB":20480,"SourceDisk":{"ID":XXXXXXXXXXXX}}}'| jq "."
元になったディスクを削除
$ curl --user "${token}:${secret}" -X DELETE ${sandbox}/disk/XXXXXXXXXXXX | jq "."
今度はアーカイブを元に新しいディスクを作成
$ curl --user "${token}:${secret}" -X POST ${sandbox}/disk -d '{"Disk":{"Name":"Test Disk","SourceArchive":{"ID":XXXXXXXXXXXX}}}' | jq "."
アーカイブを削除
$ curl --user "${token}:${secret}" -X DELETE ${sandbox}/archive/XXXXXXXXXXXX | jq "."