LoginSignup
10
7

More than 5 years have passed since last update.

doctl(DigitalOcean用CLI)の使い方

Posted at

概要

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

Statusnew になっている。状態は 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

参考情報

特に後者は様々なコマンドの実行例が載っているため、有用。

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7