docker-machine に ConoHa VPS を登録してみた
2015-10-08追記
こっちのが正確
追記終わり
docker-machine に ConoHa 用ドライバないかなーとツイートしたところ、 OpenStack ドライバで(ほぼ)イケるというリプライを頂いたので試してみました。
@k_zoar ConoHaでも標準のOpenStackドライバでほぼ動くのですが、IPv4が取れない(v6を取ってしまう)ので、時間見つけて直してみます。
— ひろのぶ(Hironobu Saito) (@hironobu_s) 2015, 9月 28
ConoHa の API を使っているので ConoHaのAPIレビューキャンペーン に応募する記事として書きます。
もちろん API を使用するので、旧アカウントではなく新アカウントを取得しておく必要があります。
今回試している環境は以下の通り
現在では IPv6 でインターネット接続してる状態の方がいいようです。
IPv6 接続が可能な方の記事待ちの方がいいかもしれません。
もっと簡単にできるかもしれませんが、今回試した手順は以下の通りです。
docker-machine で叩くコマンド
最初に docker-machine に渡すオプションを確認しておきます。
OpenStack ドライバのドキュメント からひっぱっています。
$ docker-machine create --driver openstack \ --openstack-auth-url https://identity.tyo1.conoha.io/v2.0/tokens \ --openstack-tenant-id %テナントID% \ --openstack-username %API ユーザー名% \ --openstack-password %API パスワード% \ --openstack-flavor-id %VM のプラン% \ --openstack-image-id %VM イメージ ID% \ conoha
最後の conoha
は docker-machine の名前なので適当に付けてよさそうです。
順番に見ていきましょう。
テナント ID / API ユーザー名 / API パスワード
テナント ID と API ユーザー名、 API パスワードはコントロールパネルから取得、設定できます。
API ユーザーを作成していない場合はここで作成しておきます。
VM のプラン
ConoHa API にアクセスして VM のプラン(=flavor) 一覧を取得します。
一覧の取得にはアクセストークンが必要になるので、まずはトークンの発行を行います。
$ curl -i -X POST \ -H "Accept: application/json" \ -d '{"auth":{"passwordCredentials":{"username":"%API ユーザー名%","password":"%API パスワード%"},"tenantId":"%テナント ID%"}}' \ https://identity.tyo1.conoha.io/v2.0/tokens
成功するとレスポンスが返ってくるので、 access
の token
の中にある id
としてアクセストークンが格納されているので、コイツをコピーしておきます。
続いてプランの取得を行います。
プランの一覧取得を叩けば OK です。
# curl -i -X GET \ -H "Accept: application/json" \ -H "X-Auth-Token: %アクセストークン%" \ https://compute.tyo1.conoha.io/v2/%テナント ID%/flavors
返ってきたレスポンスから適当なプランの id
をコピーしておきます。これが VM のプランになります。
name
が g-Xgb
となっているので、 X
の部分がメモリのサイズになっているものと想像しています。
今回は name
に g-1gb
とある メモリ 1GB プランの id
を使いました。
VM イメージ ID
これは自分で保存した VM のイメージというではなく、テンプレート OS のイメージのようです。
API からイメージ一覧取得を行います。
# curl -i -X GET \ -H "Accept: application/json" \ -H "X-Auth-Token: %アクセストークン%" \ https://compute.tyo1.conoha.io/v2/%テナント ID%/images
ここでも返ってきたレスポンスから適当なイメージを選びます。
name
にそれっぽい名前が付いているので、使いたい OS の id
をコピーします。
今回は CentOS 6.7 の64ビットを選択しました。
docker-machine create を実行
必要な情報が集まったので docker-machine create を行います。
$ docker-machine create --driver openstack \ --openstack-auth-url https://identity.tyo1.conoha.io/v2.0/tokens \ --openstack-tenant-id %テナントID% \ --openstack-username %API ユーザー名% \ --openstack-password %API パスワード% \ --openstack-flavor-id %VM のプラン% \ --openstack-image-id %VM イメージ ID% \ conoha
実行したコンソールでは Creating machine...
と表示され、VPS のコントロールパネルでは VM が作成されたことがわかります。
VM の用意ができるまでちょっと時間がかかるので清楚可愛いこのはちゃんの壁紙を見ながら待つのが良いと思います。
プロンプトに帰ってきたら docker-machine ls
で確認できると思います。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM conoha openstack Running tcp://%IP%8:2376
現状、 URL が IPv6 で返ってくるのでインターネット接続が IPv6 でないと操作できないっぽい(?)のでここまでしかやっていません。
その他の操作
VPS の VM を停止させるには stop
を、削除するには rm
を使えば OK です。
$ docker-machine stop conoha Stopping OpenStack instance... MachineId=%id%
$ docker-machine rm conoha Deleting OpenStack instance... Successfully removed conoha
終わり
API を使えるようになっていたのでこんなこともできるようになったんですね。
ConoHa VPS では時間課金もあるので、docker-machine で使えると便利さ倍増です。