概要
doctl
を使って、コマンドラインから DigitalOcean 上の仮想マシンを操作する。初期設定の方法や、仮想マシンの作成・停止・一覧表示・削除をする。
doctl とは
doctl
は DigitalOcean 公式のコマンドライン・ツール。仮想マシンの作成だけでなく、バックアップの制御や、DNS、フローティング IP の管理もコマンドライン上で行うことができる。
GitHub 上で開発 が行われており、2016年3月に 1.0.0 が公開されている。DigitalOcean の環境は API を使って制御する。
Golang で開発されており、クライアントが対応しているのは Linux だけでなく、Mac OS X や Windows 上でも利用できる。
インストール方法
GitHub の Releases で各 OS に対応したバイナリが配布されている。OS に対応したアーカイブをダウンロードして展開後、/usr/local/bin 等のパスを通った場所に doctl
を設置する。
初期設定
doctl
は DigitalOcean との通信に API を使う。初期設定は
$ doctl auth login
このコマンドを実行すると、Mac であれば DigitalOcean のログイン画面が表示され、認証するとその情報を、ローカルの `~/.doctlcfg`` に保管する。
しかしリモート環境上や Windows の場合、正しくログインできない (issue #22)。 代替手段として、手動で ~/.doctlcfg
ファイルを作成する。ファイルの書式は以下の通り。
access-token: アクセストークン
なお、パーミッションは 400 等、適切に設定すること。
また、Windows で Cygwin を使っている場合は C:\Users\<ユーザ名>\.doctlcfg
に置く必要があるので注意。
代替手段
別の方法として、このファイルを作成しなくても、各種のコマンドで -t <token>
を指定しても構わない。
使い方
基本的な使い方
$ doctl compute [コマンド]
ドロップレット一覧表示
$ doctl compute droplet list
ID Name Public IPv4 Memory VCPUs Disk Region Image Status
4604xxx dev3.pocketstudio.net 128.199.xxx.xxx 512 1 20 sgp1 CentOS 6.5 x64 active
6759xxx dev.docker.jp 128.199.xxx.xxx 512 1 20 sgp1 Ubuntu 14.04 x64 active
ドロップレット作成
作成は doctl compute droplet create
コマンドを使う。この時に名前、サイズ、OS イメージ、SSH 鍵を指定できる。
clitest という名前マシンを、512MB のメモリ、Ubuntu 、シンガポールで起動する例:
$ doctl compute droplet create clitest \
--size 512mb \
--image ubuntu-14-04-x64 \
--region sgp1 \
--ssh-keys 7a:17:ea:83:24:48:bd:64:ad:bc:dd:8c:a2:34:9f:4a
ID Name Public IPv4 Memory VCPUs Disk Region Image Status
12732559 clitest 512 1 20 sgp1 Ubuntu 14.04.4 x64 new
Status
が new
になっている。状態は doctl compute droplet list マシン名
でも確認可能。1分ほど待つと、active
に変わる。
$ doctl compute droplet list clitest
ID Name Public IPv4 Memory VCPUs Disk Region Image Status
12732559 clitest 139.59.239.27 512 1 20 sgp1 Ubuntu 14.04.4 x64 active
あとは doctl compute ssh clitest
のようにホスト名を指定するだけでログイン可能(ただし、私の Cygwin 環境では SSH 鍵が見つからないというエラーが出てしまい、確認中)。
オプション
その他、起動時には公式 CLI だけあって、ブラウザで作成時と同様に様々なオプションを指定可能。
-
--enable-backups
… ドロップレットのバックアップ有効化 -
--enable-ipv6
… IPv6 有効化 -
--enable-private-networking
… プライベート・ネットワーク有効化 -
--format 文字列
… 出力をカンマ区切りでカスタマイズ -
-h, --help
… ヘルプ help for create -
--image 文字例
… ドロップレット用イメージ(必須) -
--no-header
… ヘッダを表示しない -
--region 文字列
… リージョン(必須) -
--size 文字列
… ドロップレットのサイズ(必須) -
--ssh-keys 文字列
… SSH 鍵のフィンガープリント(デフォルトは []) -
--user-data 文字列
… ユーザ・データ -
--user-data-file 文字列
… ユーザ・データ用のファイル -
--wai
… ドロップレット作成までどれだけ待つか
ドロップレットの操作
ドロップレットの状態を操作するには doctl compute droplet-action <アクション名>
の形式を使う。例えば、電源をoffにするには power-off <droplet_ID>
を指定する(ドロップレット名では指定できないので注意)
$ doctl compute droplet-action power-off 12732559
ID Status Type Started At Completed At Resource ID Resource Type Region
92573621 in-progress power_off 2016-04-03 04:08:26 +0000 UTC <nil> 12732559 droplet sgp1
状態を確認すると、止まっている。
$ doctl compute droplet list clitest
ID Name Public IPv4 Memory VCPUs Disk Region Image Status
12732559 clitest 139.59.239.27 512 1 20 sgp1 Ubuntu 14.04.4 x64 off
ドロップレット削除
削除は doctl compute droplet delete <droplet_ip>
を指定するだけ。
$ doctl compute droplet delete 12732559
deleted droplet 12732559
その他のコマンド
リージョン一覧表示
$ doctl compute region list
Slug Name Available
nyc1 New York 1 true
sfo1 San Francisco 1 true
nyc2 New York 2 true
ams2 Amsterdam 2 true
sgp1 Singapore 1 true
lon1 London 1 true
nyc3 New York 3 true
ams3 Amsterdam 3 true
fra1 Frankfurt 1 true
tor1 Toronto 1 true
利用可能なマシン一覧
$ doctl compute size list
Slug Memory VCPUs Disk Price Monthly Price Hourly
512mb 512 1 20 5.00 0.007440
1gb 1024 1 30 10.00 0.014880
2gb 2048 2 40 20.00 0.029760
4gb 4096 2 60 40.00 0.059520
8gb 8192 4 80 80.00 0.119050
16gb 16384 8 160 160.00 0.238100
32gb 32768 12 320 320.00 0.476190
48gb 49152 16 480 480.00 0.714290
64gb 65536 20 640 640.00 0.952380
参考情報
- digitalocean/doctl; A command line tool for DigitalOcean services
- https://github.com/digitalocean/doctl
- How To Use Doctl, the Official DigitalOcean Command-Line Client | DigitalOcean
- https://www.digitalocean.com/community/tutorials/how-to-use-doctl-the-official-digitalocean-command-line-client
特に後者は様々なコマンドの実行例が載っているため、有用。