このチュートリアルの以前のバージョンは、Brennen Bearnesによって作成されました。
前書き
DigitalOceanのWebベースのコントロールパネルは、ドロップレットを管理するためのポイントアンドクリックインターフェイスを提供します。 ただし、管理するドロップレットが多数ある場合、グラフィカルデスクトップを使用せずにターミナルからドロップレットを管理する必要がある場合、またはスクリプト可能なインターフェイスの恩恵を受けるタスクがある場合は、コマンドラインツールを使用することをお勧めします。
doctl
は、公式のDigitalOceanコマンドラインクライアントです。 the DigitalOcean APIを使用して、ほとんどのアカウントおよびドロップレット機能へのアクセスを提供します。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
次のthe project’s installation and configuration instructionsによって
doctl
がインストールされているローカルコンピューター。
このチュートリアルは、doctl
のほとんどの操作のリファレンスとして意図されています。 doctl
コマンドはAPIと密接に並行しているため、API documentationとHow To Use the DigitalOcean API v2を読むことも役立つ場合があります。
一般的なdoctl
の使用法
コマンドの呼び出し
doctl
では、ユーティリティにコマンド、1つ以上のサブコマンド、場合によっては特定の値を指定する1つ以上のオプションを指定することにより、個々の機能が呼び出されます。 コマンドは、3つの主要なカテゴリに分類されます。
-
アカウント関連情報の
account
-
DigitalOceanで認証するための
auth
-
インフラストラクチャを管理するための
compute
すべてのコマンドの概要を表示するには、doctl
を単独で呼び出すことができます。 3つの主要なカテゴリのいずれかで使用可能なすべてのコマンドを表示するには、doctl compute
のようにdoctl category
を使用できます。 特定のコマンドの使用ガイドについては、doctl compute droplet --help
のように、--help
フラグを指定してコマンドを入力してください。
JSON形式でのデータの取得
スクリプト環境で、またはデータ処理ツールを使用してコマンドラインで作業する場合、多くの場合、コマンドから機械可読の出力を取得すると役立ちます。
デフォルトでは、doctl
は人間が読めるテキストの列に出力をフォーマットしますが、--output json
オプションを使用して詳細なJSON出力を生成できます。
doctl compute droplet get droplet_id --output json
Sample Output{
"id": droplet_id,
"name": "droplet_name",
"memory": 1024,
"vcpus": 1,
"disk": 30,
"region": {
"slug": "nyc3",
"name": "New York 3",
"sizes": [
...
JSON出力は、ほとんどのプログラミング言語の標準ライブラリで読み取り可能な形式であることに加えて、Dropletおよびその他のリソースのより詳細な検査を可能にする場合があります。
フォーマット
出力から一連のフィールドのみを取得すると便利な場合がよくあります。 これを行うには、--format
フラグを使用できます。このフラグは、フィールドのリストを名前で取得します。 たとえば、ドロップレットのID、名前、およびIPアドレスのみを取得する場合、次のコマンドを使用できます。
doctl compute droplet list --format "ID,Name,PublicIPv4"
Sample outputID Name Public IPv4
50513569 doctl-1 67.205.152.65
50513570 test 67.205.148.128
50513571 node-1 67.205.131.88
テンプレート
doctl compute droplet get
コマンドは、出力テンプレートをサポートしており、出力の形式をカスタマイズできます。 この機能を使用するには、--template
フラグを使用してthe Go-formatted templateを指定します。
たとえば、ドロップレットの名前をdroplet_name: droplet_name
の形式で取得する場合は、次のget
コマンドを使用します。
doctl compute droplet get 12345678 --template "droplet_name: {{ .Name}}
Outputdroplet_name: ubuntu-1gb-nyc3-01
リソースの使用
リソースのリスト
ドロップレットなどのリソースのリストを取得するには、パラメーターなしでlist
コマンドを使用できます。
doctl compute droplet list
Sample output for list commandID Name Public IPv4 Private IPv4 Public IPv6 Memory VCPUs Disk Region Image Status Tags
50513569 test-1 67.205.152.65 512 1 20 nyc1 Ubuntu 16.04.2 x64 active
50513571 test-2 67.205.131.88 512 1 20 nyc1 Ubuntu 16.04.2 x64 active
50513570 site 67.205.148.128 512 1 20 nyc1 Ubuntu 16.04.2 x64 active
list
コマンドは、オプションのパラメーターとしてglobをサポートします。 globは、特定のリソースを名前でフィルタリングするために使用できるワイルドカード文字を使用してパターンを表します。 たとえば、名前がtest
で始まるドロップレットのリストを取得するには、次のコマンドを使用できます。
doctl compute droplet list 'test*'
Sample output for list command with 'doctl-' as globID Name Public IPv4 Private IPv4 Public IPv6 Memory VCPUs Disk Region Image Status Tags
50513569 test-1 67.205.152.65 512 1 20 nyc1 Ubuntu 16.04.2 x64 active
50513571 test-2 67.205.131.88 512 1 20 nyc1 Ubuntu 16.04.2 x64 active
リソースを作成する
リソースを作成するには、より詳細なパラメーターを持つより長いコマンドが必要です。 ドロップレットを作成するには、使用する画像、データセンターの地域、および関連するスラッグを使用して必要なドロップレットの種類を指定する必要があります。 使用するスラッグを見つけるには、New Size Slugs for Droplet Plan Changes
を参照してください。 Alternatively, run the doctl compute size list
command.
たとえば、次のコマンドは、1GBのメモリ、1つのCPU、SSHキー、およびバックアップが有効になっているtestという名前の64ビットDebian8ドロップレットを作成します。
doctl compute droplet create test --size s-1vcpu-1gb --image debian-8-x64 --region nyc1 --ssh-keys 4d:23:e6:e4:8c:17:d2:cf:89:47:36:b5:c7:33:40:4e --enable-backups
次の出力が表示されます。
Sample Droplet creation outputID Name Public IPv4 Memory VCPUs Disk Region Image Status
11450164 test 1024 1 30 nyc1 Debian 8.3 x64 new
リソースを削除するには、引数としてリソースIDが必要です。または、特定のリソースにIDが存在しない場合はリソース名が必要です(例: タグ)。 意図を確認するには、確認の質問にy
またはyes
で回答して、すべての削除アクションを確認する必要があります。
doctl compute droplet delete 123456
OutputWarning: Are you sure you want to delete droplet(s) (y/N) ?
回答を提供しない、またはy
またはyes
とは異なる回答を提供すると、リソースを削除せずにアクションがキャンセルされます。 --f
(--force
)フラグを使用して、明示的に指定せずにdoctl
に肯定的な回答を想定させることができます。
doctl compute droplet delete -f 123456
リソースの一意の識別子の検索
ドロップレット作成コマンドには、NYC1リージョンのnyc1
、Debianイメージのdebian-8-x64
、4d:23:e6:e4:8c:17:d2:cf:89:47:36:b5:c7:33:40:4e
のようなSSHキーフィンガープリントなどの一連の識別子が必要です。
ドロップレットや画像などの多くのリソースは、DigitalOceanのデータベース内で一意の値(多くの場合数値)によって識別されます。
APIからほとんどのコマンドに必要な一意の識別子を取得できます。
コマンド | ノート |
---|---|
|
あなたの液滴。 一部のコマンドにも名前が付けられています。ほとんどの場合、ID列の数値が必要です。 |
|
アカウントに関連付けられているSSHキー。 ドロップレットの作成では、numeric IDまたはfingerprintのいずれかを指定できます。 |
|
利用可能な地域。 Slug列の文字列を使用します。 |
|
スナップショット、バックアップ、基本配布イメージなどの利用可能なイメージ。 新しいドロップレットを作成するには、Slug列の文字列を使用します。 |
|
利用可能な液滴サイズ。 Slug列の文字列を使用します。 |
|
利用可能なタグ。 Name列の文字列を使用します。 |
液滴の使用
ドロップレットの作成、削除、検査
doctl compute droplet
コマンドを使用すると、ドロップレットを作成、削除、および検査できます。 繰り返しますが、個々のドロップレットを操作するためのほとんどのコマンドには、ドロップレットの一意のIDが必要であり、これらはdoctl droplet list
からの出力にあります。
doctl compute droplet サブコマンド |
ノート |
---|---|
|
ドロップレットに対して実行されたアクションの履歴を表示します。 |
|
ドロップレットのバックアップを一覧表示します。 |
|
ドロップレットを作成します。 サイズ、画像、地域はすべて必須です。 |
|
IDまたは名前でドロップレットを削除します。 |
|
特定の液滴の詳細を取得します。 |
|
ドロップレットのカーネルを一覧表示します。 |
|
現在の液滴を一覧表示します。 |
|
特定のドロップレットと同じ物理ハードウェアで実行されているドロップレットを一覧表示します。 |
|
ドロップレットのスナップショットを一覧表示します。 |
|
ドロップレットにタグを付けます。 |
|
ドロップレットのタグを外します。 |
ドロップレットアクションの開始
doctl compute droplet-action
コマンドを使用すると、電源管理アクションやバックアップやプライベートネットワークなどの機能の切り替えなど、ドロップレットのさまざまなアクションをトリガーできます。
doctl compute droplet-action サブコマンド |
ノート |
---|---|
|
ドロップレットでのアクションの詳細を取得します。 |
|
ドロップレットのバックアップを無効にします。 |
|
ドロップレットを再起動します。 |
|
ドロップレットをオフにしてから、再びオンにします。 |
|
ドロップレットをシャットダウンします。 |
|
ドロップレットの電源を切ります。 ドロップレットの電源を入れる必要があります。 データの損失を防ぐために、通常はドロップレット自体のコマンドラインからこれを行うのが最善です。 |
|
ドロップレットの電源を入れます。 ドロップレットの電源を切る必要があります。 |
|
ドロップレットの電源をリセットします。 |
|
ドロップレットのipv6を有効にします。 |
|
ドロップレットのprivate networkingを有効にします。 |
|
ドロップレットをアップグレードします。 |
|
ドロップレットを特定のバックアップイメージに復元します。 |
|
ドロップレットのサイズを変更します。 ドロップレットの電源を切る必要があります。 デフォルトでは、ディスクのサイズは変更されないため、Dropletをダウングレードできます。 |
|
特定のイメージからドロップレットを再構築します。 |
|
ドロップレットの名前を |
|
ドロップレットのカーネルを |
|
ドロップレットのスナップショットを取り、 |
SSHでの作業
SSH接続の作成
SSHで個々のDropletに接続するには、通常、IPアドレスまたは完全修飾ドメイン名のいずれかを知っている必要があります。 代わりに、doctl
を使用して、名前、数値ID、またはプライベートIPでドロップレットに接続できます。
doctl compute ssh droplet_name
doctl compute ssh droplet_id
doctl compute ssh --ssh-private-ip droplet_private_ip
また、--ssh-command
フラグを使用してSSH接続が確立されたら実行するコマンドを提供できます。 これによりコマンドが実行され、その出力がローカル端末に出力され、SSHセッションが閉じます。
doctl compute ssh --ssh-command command
[.note]#Note:SSHコマンド転送は現在Windowsでは使用できません。
#
デフォルトのSSHユーザー名はroot(CoreOSの場合はcore)で、デフォルトのポートは22
です。 フラグを使用して、デフォルト以外の値を設定し、他の機能を有効にできます。
Flag | 説明 |
---|---|
|
SSHセッションに使用するユーザー名。 |
|
SSHセッションのポート。 |
|
SSHキーへのパス。 |
|
エージェント転送を有効にします。 |
構成ファイルのデフォルト構成値を変更することもできます。 The project’s README fileには、これを行う方法の詳細があります。
SSHキーの使用
doctl compute ssh-key
コマンドを使用して、アカウントに関連付けられたSSH公開鍵を管理できます。 SSHキーを参照するほとんどのコマンドは、キーの数値IDまたはそのフィンガープリントを受け入れます。
doctl compute ssh-key サブコマンド |
ノート |
---|---|
|
アカウントに関連付けられているSSHキーを一覧表示します。 |
|
数値IDまたはキーのフィンガープリントによって、特定のキーに関する情報を取得します。 |
|
公開鍵の内容を指定して、公開鍵をアカウントに関連付けます。 |
|
ソースファイルを指定して、公開鍵をアカウントに関連付けます。 |
|
数値IDまたは指紋でアカウントからキーを削除します。 |
|
数字のIDまたは指紋でキーの名前を変更します。 |
フローティングIPの使用
フローティングIPは、パブリックにアクセス可能な静的IPアドレスで、ドロップレットの1つに割り当てることができます。 機能の詳細については、How To Use Floating IPs on DigitalOceanを参照してください。 フローティングIPはdoctl compute floating-ip
で操作できます。
doctl compute floating-ip サブコマンド |
ノート |
---|---|
|
すべてのフローティングIPアドレスを一覧表示します。 |
|
フローティングIPアドレスの詳細を取得します。 |
|
|
|
フローティングIPアドレスを削除します。 |
フローティングIPをドロップレットに割り当てる
doctl compute floating-ip-action
コマンドは、ドロップレットからのフローティングIPの割り当てまたは割り当て解除に使用されます。
doctl compute floating-ip-action サブコマンド |
ノート |
---|---|
|
フローティングIPを数値IDでドロップレットに割り当てます。 |
|
フローティングIPの割り当てを解除します。 |
|
フローティングIPアクションの詳細を数値IDで取得します。 |
ドメインでの作業
doctl compute domain
コマンドは、ドメインを管理するために使用されます。 主題の大まかな概要については、Introduction to Managing DNS seriesを参照してください。
doctl compute domain サブコマンド |
ノート |
---|---|
|
ドメインを一覧表示します。 |
|
|
|
ドメインレコードを取得します。 |
|
ドメインを削除します。 |
ドメインレコードの管理
doctl compute domain records
コマンドを使用して、ドメインのDNSレコードに関する情報を作成、削除、更新、または取得できます。
doctl compute domain records サブコマンド |
ノート |
---|---|
|
特定のドメインのレコードを一覧表示します。 |
|
ドメインのレコードを作成します。 |
|
数値IDでレコードを削除します。 |
|
数値IDでレコードを更新します。 |
ブロックストレージボリュームの使用
ブロックストレージボリュームの作成、削除、検査
doctl compute volume
コマンドを使用して、DigitalOceanのブロックストレージボリュームに関する情報を作成、削除、または取得できます。 この機能の詳細については、How To Use Block Storage on DigitalOceanに関するガイドを参照してください。
doctl compute volume サブコマンド |
ノート |
---|---|
|
ボリュームを一覧表示します。 |
|
ボリュームを作成します。 名前、地域、サイズは必須です。 |
|
数値IDでボリュームを取得します。 |
|
ボリュームを削除します。 |
|
スナップショットボリューム。 |
ボリュームアクションの開始
doctl compute volume-action
コマンドを使用すると、ボリュームのドロップレットへのアタッチやドロップレットからのデタッチなど、ボリュームのアクションをトリガーできます。
doctl compute volume-action サブコマンド |
ノート |
---|---|
|
ドロップレットにボリュームを添付します。 |
|
ドロップレットからボリュームを切り離します。 |
|
ボリュームのサイズを変更します。 |
ロードバランサーの使用
doctl compute load-balancer
コマンドを使用して、DigitalOceanのロードバランサーに関する情報を作成、削除、または取得できます。 この機能の詳細については、Introduction to DigitalOcean Load Balancersをお読みください。
doctl compute load-balancer サブコマンド |
ノート |
---|---|
|
ロードバランサーを一覧表示します。 |
|
ロードバランサーを作成します。 名前、地域、ドロップレットIDのタグまたはリスト、および少なくとも1つの転送ルールは必須です。 |
|
ロードバランサーを作成します。 名前、地域、ドロップレットIDのタグまたはリスト、および少なくとも1つの転送ルールは必須です。 |
|
ロードバランサーを入手します。 |
|
ロードバランサーを削除します。 |
|
ドロップレットをロードバランサーに追加します。 |
|
ロードバランサーからドロップレットを削除します。 |
|
ロードバランサーに転送ルールを追加します。 |
|
ロードバランサーから転送ルールを削除します。 |
doctl
の引数として使用する場合、転送ルールは次のように表現する必要があります:entry_protocol:protocol,entry_port:port,target_protocol:protocol,target_port:port
。
証明書の管理
doctl compute certificate
サブコマンドを使用すると、SSL証明書、秘密鍵、および証明書チェーンをアップロードおよび管理できます。
doctl compute certificate サブコマンド |
ノート |
---|---|
|
すべての証明書を一覧表示します。 |
|
IDで証明書を取得します。 |
|
証明書を作成します。 名前とリーフ証明書パスは必須です。 |
|
IDで証明書を削除します。 |
スナップショットの使用
doctl compute snapshot
コマンドを使用して、ドロップレットおよびボリュームスナップショットに関する情報を一覧表示、削除、または取得できます。
doctl compute snapshot サブコマンド |
ノート |
---|---|
|
すべてのスナップショットを一覧表示します。 |
|
スナップショットを取得します。 |
|
スナップショットを削除します。 |
新しいスナップショットを作成するには、関連するリソースコマンドツリーの下で適切なコマンドを使用する必要があります。 例えば:
-
doctl compute droplet-action snapshot droplet_ID
は、ドロップレットからスナップショットを作成します。 -
doctl compute volume snapshot volume_ID
は、ボリュームからスナップショットを作成します。
画像の操作
doctl compute image
コマンドを使用すると、配布イメージ、アプリケーションイメージ、およびバックアップやスナップショットなどのユーザー作成イメージを含むすべてのイメージを管理できます。 スナップショットの管理にはsnapshot
コマンドを使用することをお勧めします。これは、より詳細な情報を提供し、削除機能を備え、ブロックストレージスナップショットをサポートするためです。
doctl compute image サブコマンド |
ノート |
---|---|
|
すべての画像を一覧表示します。 |
|
利用可能なすべての配布イメージを一覧表示します。 |
|
使用可能なすべてのOne-Click Applicationsを一覧表示します。 |
|
ユーザーが作成したすべての画像を一覧表示します。 |
|
IDで画像を取得します。 |
|
イメージの名前を更新します。 名前は必須です。 |
|
IDで画像を削除します。 |
画像アクションの呼び出し
doctl compute image-action
コマンドを使用すると、画像を転送し、画像に対して呼び出されたアクションの詳細を取得できます。
doctl compute image-action サブコマンド |
ノート |
---|---|
|
IDで画像のアクションを取得します。 アクションIDは必須です。 |
|
画像を別のリージョンに転送します。 画像IDと地域は必須です。 |
ファイアウォールの使用
doctl compute firewall
コマンドを使用すると、ルールの作成と保守を含め、ファイアウォールを作成および管理できます。 doctl
を使用したファイアウォールの管理の詳細については、How To Secure Web Server Infrastructure With DigitalOcean Cloud Firewalls Using Doctlチュートリアルを確認してください。
doctl compute firewall コマンド |
ノート |
---|---|
|
すべてのファイアウォールを一覧表示します。 |
|
ドロップレットの数値IDですべてのファイアウォールを一覧表示します。 |
|
ファイアウォールを作成します。 名前と、少なくともインバウンドまたはアウトバウンドのルールは必須です。 |
|
ファイアウォールを更新します。 数値ID、名前、および少なくともインバウンドまたはアウトバウンドのルールは必須です。 |
|
数値IDでファイアウォールを取得します。 |
|
数値IDでファイアウォールを削除します。 |
|
数値IDでドロップレットをファイアウォールに追加します。 |
|
数値IDでファイアウォールからドロップレットを削除します。 |
|
ファイアウォールにタグを追加します。 |
|
ファイアウォールからタグを削除します。 |
|
インバウンドまたはアウトバウンドルールをファイアウォールに追加します。 |
|
ファイアウォールへのインバウンドまたはアウトバウンドルールを削除します。 |
doctl
の引数として使用する場合、インバウンドまたはアウトバウンドのルールは次のように表現する必要があります:protocol:protocol,ports:ports,droplet_id:droplet-id
。
タグの使用
タグは、カスタムラベルをリソースに適用するために使用され、簡単にフィルタリングできます。 タグの詳細については、the How To Tag DigitalOcean Droplets tutorialを参照してください。
doctl compute tag サブコマンド |
ノート |
---|---|
|
タグを作成します。 |
|
名前でタグを取得します。 |
|
すべてのタグを一覧表示します。 |
|
名前でタグを削除します。 |
アカウントでの作業
アカウントのアクションの履歴を読む
DigitalOceanシステムは、ドロップレット、フローティングIP、およびその他のリソースで実行されたアクションの履歴を記録します。 このデータには、doctl compute action
コマンドを使用してアクセスできます。
doctl compute action list
次のような特定のドロップレットのアクションを確認できます。
doctl compute droplet actions droplet_id
アカウント情報の取得
設定した電子メールアドレスやドロップレット制限など、アカウントに関する基本的な詳細を確認できます。
doctl account get
APIリクエストはレート制限されているため、最近行ったリクエストの数と、制限がリセットされる時期を確認すると役立つ場合があります。
doctl account ratelimit
結論
doctl
ユーティリティは、コマンドラインでドロップレットやその他のリソースを管理するための便利なツールです。 毎日の開発および管理タスクに必要なWebベースのインターフェイスとの手動のやり取りの量を大幅に削減できます。
the underlying APIについて学習することに加えて、システムレベルのタスクを自動化するためにlibraries which wrap the API for popular programming languagesとtools such as Ansibleを調べることもできます。