開発者ドキュメント

公式DigitalOceanコマンドラインクライアントであるDoctlの使用方法

このチュートリアルの以前のバージョンは、 BrennenBearnesによって作成されました。

序章

DigitalOceanのWebベースのコントロールパネルは、ドロップレットを管理するためのポイントアンドクリックインターフェイスを提供します。 ただし、管理するドロップレットが多数ある場合、グラフィカルデスクトップを使用せずにターミナルからドロップレットを管理する必要がある場合、またはスクリプト可能なインターフェイスの恩恵を受けるタスクがある場合は、コマンドラインツールを使用することをお勧めします。

doctl は公式のDigitalOceanコマンドラインクライアントです。 DigitalOcean API を使用して、ほとんどのアカウントおよびドロップレット機能へのアクセスを提供します。

前提条件

このチュートリアルに従うには、次のものが必要です。

このチュートリアルは、ほとんどの人のリファレンスとして意図されています doctlの操作。 なぜなら doctl コマンドはAPIと密接に対応しているため、APIドキュメントおよびDigitalOcean APIv2の使用方法を読むことも役立つ場合があります。

ジェネリック doctl 使用法

コマンドの呼び出し

doctl、個々の機能は、ユーティリティにコマンド、1つ以上のサブコマンド、場合によっては特定の値を指定する1つ以上のオプションを与えることによって呼び出されます。 コマンドは、次の3つの主要なカテゴリに分類されます。

すべてのコマンドの概要を表示するには、を呼び出すことができます doctl 単独で。 3つの主要なカテゴリのいずれかで使用可能なすべてのコマンドを表示するには、次を使用できます。 doctl category、 お気に入り doctl compute. 特定のコマンドの使用ガイドについては、コマンドを次のように入力してください。 --help フラグ、のように doctl compute droplet --help.

JSON形式でのデータの取得

スクリプト環境では、またはデータ処理ツールを使用してコマンドラインで作業する場合、コマンドから機械で読み取り可能な出力を取得すると役立つことがよくあります。

デフォルトでは、 doctl 人間が読めるテキストの列に出力をフォーマットしますが、 --output json オプション。

  1. 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出力は、ほとんどのプログラミング言語の標準ライブラリで読み取り可能な形式であることに加えて、ドロップレットやその他のリソースのより詳細な検査を可能にする場合があります。

フォーマット

出力からフィールドのセットのみを取得すると便利なことがよくあります。 これを行うには、 --format フラグの後に、必要なフィールドのリストが続きます。 たとえば、ドロップレットのID、名前、およびIPアドレスのみを取得する場合は、次のコマンドを使用できます。

  1. doctl compute droplet list --format "ID,Name,PublicIPv4"
Sample output
ID Name Public IPv4 50513569 doctl-1 67.205.152.65 50513570 test 67.205.148.128 50513571 node-1 67.205.131.88

テンプレート

The doctl compute droplet get コマンドは出力テンプレートをサポートします。これにより、出力の形式をカスタマイズできます。 この機能を使用するには、Go形式のテンプレート--template 国旗。

たとえば、ドロップレットの名前を次の形式で取得する場合 droplet_name: droplet_name、次を使用します get 指図:

  1. doctl compute droplet get 12345678 --template "droplet_name: {{ .Name}}
Output
droplet_name: ubuntu-1gb-nyc3-01

リソースの操作

リソースの一覧表示

ドロップレットなどのリソースのリストを取得するには、 list パラメータなしのコマンド。

  1. doctl compute droplet list
Sample output for list command
ID 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

The list コマンドは、オプションのパラメーターとしてglobをサポートします。 globは、特定のリソースを名前でフィルタリングするために使用できるワイルドカード文字を使用してパターンを表します。 たとえば、名前がで始まるドロップレットのリストを取得するには test、次のコマンドを使用できます。

doctl compute droplet list 'test*'
Sample output for list command with 'doctl-' as glob
ID 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

リソースの作成

リソースを作成するには、より詳細なパラメーターを使用したより長いコマンドが必要です。 ドロップレットを作成するには、関連するスラッグを使用して、使用するイメージ、データセンターリージョン、およびドロップレットの種類を指定する必要があります。 使用するスラッグを見つけるには、液滴プラン変更用の新しいサイズのスラッグを参照してください。 または、 doctl compute size list 指図。

たとえば、次のコマンドは、1GBのメモリ、1つのCPU、SSHキー、およびバックアップが有効になっているtestという名前の64ビットDebian8ドロップレットを作成します。

  1. 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 output
ID 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
Output
Warning: Are you sure you want to delete droplet(s) (y/N) ?

答えを提供しない、またはとは異なる答えを提供する y また yes リソースを削除せずにアクションをキャンセルします。 あなたが作ることができます doctl 明示的に提供せずに肯定的な答えを想定し、 --f (--force) 国旗:

doctl compute droplet delete -f 123456

リソースの一意の識別子を見つける

ドロップレット作成コマンドには、次のような一連の識別子が必要です。 nyc1 NYC1地域の場合、 debian-8-x64 Debianイメージの場合、およびSSHキーのフィンガープリントは次のようになります 4d:23:e6:e4:8c:17:d2:cf:89:47:36:b5:c7:33:40:4e.

ドロップレットや画像などの多くのリソースは、DigitalOceanのデータベース内で一意の値(多くの場合数値)によって識別されます。

ほとんどのコマンドに必要な一意の識別子をAPIから取得できます。

指示 ノート
doctl compute droplet list あなたの液滴。 一部のコマンドにも名前が付けられています。 ほとんどの場合、ID列の数値が必要です。
doctl compute ssh-key list アカウントに関連付けられているSSHキー。 ドロップレットの作成には、数値IDまたは指紋のいずれかを指定できます。
doctl compute region list 利用可能な地域。 Slug列の文字列を使用します。
doctl compute image list スナップショット、バックアップ、ベース配布イメージなどの使用可能なイメージ。 Slug 列の文字列を使用して、新しいドロップレットを作成します。
doctl compute size list 利用可能な液滴サイズ。 Slug列の文字列を使用します。
doctl compute tag list 利用可能なタグ。 Name列の文字列を使用します。

ドロップレットの操作

ドロップレットの作成、削除、および検査

The doctl compute droplet コマンドを使用すると、ドロップレットを作成、削除、および検査できます。 繰り返しになりますが、個々のドロップレットを操作するためのほとんどのコマンドには、ドロップレットの一意のIDが必要であり、これらはからの出力にあります。 doctl droplet list.

doctl compute droplet サブコマンド ノート
actions droplet_id ドロップレットに対して実行されたアクションの履歴を表示します。
backups droplet_id ドロップレットのバックアップを一覧表示します。
create name --size s-1vcpu-1gb --image image_slug --region nyc1 ドロップレットを作成します。 サイズ、画像、地域はすべて必須です。
delete droplet_id_or_name IDまたは名前でドロップレットを削除します。
get droplet_id 特定の液滴の詳細を取得します。
kernels droplet_id ドロップレットのカーネルを一覧表示します。
list 現在のドロップレットを一覧表示します。
neighbors droplet_id 特定のドロップレットと同じ物理ハードウェアで実行されているドロップレットを一覧表示します。
snapshots droplet_id ドロップレットのスナップショットを一覧表示します。
tag droplet_id/droplet_name ドロップレットにタグを付けます。
untag droplet_id/droplet_name ドロップレットのタグを外します。

ドロップレットアクションの開始

The doctl compute droplet-action コマンドを使用すると、電源管理アクションやバックアップやプライベートネットワークなどの機能の切り替えなど、Dropletのさまざまなアクションをトリガーできます。

doctl compute droplet-action サブコマンド ノート
get droplet_id --action-id action_id ドロップレットでのアクションの詳細を取得します。
disable-backups droplet_id ドロップレットのバックアップを無効にします。
reboot droplet_id ドロップレットを再起動します。
power-cycle droplet_id ドロップレットをオフにしてから、もう一度オンにします。
shutdown droplet_id ドロップレットをシャットダウンします。
power-off droplet_id ドロップレットの電源を切ります。 ドロップレットの電源がオンになっている必要があります。 データの損失を防ぐために、通常はDroplet自体のコマンドラインからこれを行うのが最善です。
power-on droplet_id ドロップレットの電源を入れます。 ドロップレットの電源をオフにする必要があります。
power-reset droplet_id ドロップレットの電源をリセットします。
enable-ipv6 droplet_id ドロップレットのipv6を有効にします。
enable-private-networking droplet_id ドロップレットのプライベートネットワーキングを有効にします。
upgrade droplet_id ドロップレットをアップグレードします。
restore droplet_id --image-id image_id ドロップレットを特定のバックアップイメージに復元します。 The image_id ドロップレットのバックアップである必要があります。
resize droplet_id --size 2gb ドロップレットのサイズを変更します。 ドロップレットの電源をオフにする必要があります。 デフォルトでは、ディスクのサイズは変更されないため、Dropletをダウングレードできます。 を使用してディスクのサイズを変更できます --resize-disk 国旗。
rebuild droplet_id --image-id image_id 特定のイメージからドロップレットを再構築します。
rename droplet_id --droplet-name new_name ドロップレットの名前をに変更します new_name.
change-kernel droplet_id --kernel-id kernel_id ドロップレットのカーネルをに変更します kernel_id.
snapshot droplet_id --snapshot-name snapshot_name ドロップレットのスナップショットを撮り、名前を付けます snapshot_name.

SSHでの作業

SSH接続の確立

SSHを使用して個々のドロップレットに接続するには、通常、そのIPアドレスまたは完全修飾ドメイン名のいずれかを知っている必要があります。 代わりに使用できます doctl 名前、数値ID、またはプライベートIPでドロップレットに接続するには:

  1. doctl compute ssh droplet_name
  1. doctl compute ssh droplet_id
  1. doctl compute ssh --ssh-private-ip droplet_private_ip

また、SSH接続が確立されたら実行するコマンドを提供できます。 --ssh-command 国旗。 これによりコマンドが実行され、その出力がローカル端末に出力され、SSHセッションが閉じます。

  1. doctl compute ssh --ssh-command command

:SSHコマンド転送は現在Windowsでは使用できません。

デフォルトのSSHユーザー名はroot(CoreOSの場合は core )で、デフォルトのポートは 22. フラグを使用して、デフォルト以外の値を設定し、他の機能を有効にすることができます。

国旗 説明
--ssh-user string SSHセッションに使用するユーザー名。
--ssh-port int SSHセッションのポート。
--ssh-key-path string SSHキーへのパス。
--ssh-agent-forwarding エージェント転送を有効にします。

構成ファイルでデフォルトの構成値を変更することもできます。 プロジェクトのREADMEファイルには、これを行う方法の詳細が記載されています。

SSHキーの使用

アカウントに関連付けられているSSH公開鍵は、 doctl compute ssh-key 指図。 SSHキーを参照するほとんどのコマンドは、キーの数値IDまたはそのフィンガープリントのいずれかを受け入れます。

doctl compute ssh-key サブコマンド ノート
list アカウントに関連付けられているSSHキーを一覧表示します。
get ssh_key_id_or_fingerprint 数値IDまたはキーのフィンガープリントによって、特定のキーに関する情報を取得します。
create new_key_name --public-key "public_key" 公開鍵の内容を指定して、公開鍵をアカウントに関連付けます。
import new_key_name --public-key-file ~/.ssh/id_rsa.pub ソースファイルを指定して、公開鍵をアカウントに関連付けます。
delete ssh_key_id_or_fingerprint 数値IDまたは指紋でアカウントからキーを削除します。
update ssh_key_id_or_fingerprint --key-name new_key_name 数値IDまたは指紋でキーの名前を変更します。

フローティングIPの操作

フローティングIPは、パブリックにアクセス可能な静的IPアドレスであり、ドロップレットの1つに割り当てることができます。 この機能の詳細については、DigitalOceanでフローティングIPを使用する方法を参照してください。 フローティングIPを操作できます doctl compute floating-ip.

doctl compute floating-ip サブコマンド ノート
list すべてのフローティングIPアドレスを一覧表示します。
get floating_ip_address フローティングIPアドレスの詳細を取得します。
create --region nyc1 でフローティングIPを作成する nyc1 領域。
delete floating_ip_address フローティングIPアドレスを削除します。

ドロップレットへのフローティングIPの割り当て

The doctl compute floating-ip-action コマンドは、ドロップレットからフローティングIPを割り当てまたは割り当て解除するために使用されます。

doctl compute floating-ip-action サブコマンド ノート
assign floating_ip droplet_id 数値IDを使用してフローティングIPをドロップレットに割り当てます。
unassign floating_ip フローティングIPの割り当てを解除します。
get floating_ip action_id フローティングIPアクションの詳細を数値IDで取得します。

ドメインの操作

The doctl compute domain コマンドはドメインを管理するために使用されます。 このテーマの概要については、DNSシリーズの管理の概要を参照してください。

doctl compute domain サブコマンド ノート
list ドメインを一覧表示します。
create domain_name --ip-address droplet_ip_address のデフォルトレコードを使用してドメインを作成します droplet_ip_address.
get domain_name ドメインレコードを取得します。
delete domain_name ドメインを削除します。

ドメインレコードの管理

The doctl compute domain records コマンドを使用して、ドメインのDNSレコードに関する情報を作成、削除、更新、または取得できます。

doctl compute domain records サブコマンド ノート
list domain_name 特定のドメインのレコードを一覧表示します。
create domain_name --record-type record_type ドメインのレコードを作成します。
delete domain_name record_id 数値IDでレコードを削除します。
update domain_name --record-id record_id 数値IDでレコードを更新します。

ブロックストレージボリュームの操作

ブロックストレージボリュームの作成、削除、および検査

The doctl compute volume コマンドを使用して、DigitalOceanのブロックストレージボリュームに関する情報を作成、削除、または取得できます。 この機能の詳細については、DigitalOceanでブロックストレージを使用する方法に関するガイドをお読みください。

doctl compute volume サブコマンド ノート
list ボリュームを一覧表示します。
create volume_name --region volume_region --size volume_size ボリュームを作成します。 名前、地域、サイズは必須です。
get volume_ID 数値IDでボリュームを取得します。
delete volume_ID ボリュームを削除します。
snapshot volume_ID スナップショットボリューム。

ボリュームアクションの開始

The doctl compute volume-action コマンドを使用すると、ドロップレットへのボリュームのアタッチやドロップレットからのボリュームのデタッチなど、ボリュームのアクションをトリガーできます。

doctl compute volume-action サブコマンド ノート
attach volume_id droplet_id ドロップレットにボリュームをアタッチします。
detach volume_id droplet_id ドロップレットからボリュームを切り離します。
resize volume_id --region volume_region --size new_size ボリュームのサイズを変更します。

ロードバランサーの操作

The doctl compute load-balancer コマンドを使用して、DigitalOceanのロードバランサーに関する情報を作成、削除、または取得できます。 この機能の詳細については、DigitalOceanロードバランサーの概要をお読みください。

doctl compute load-balancer サブコマンド ノート
list ロードバランサーを一覧表示します。
create --name lb_name --region lb_region --tag-name tag_name --forwarding-rules forwarding_rule ロードバランサーを作成します。 名前、地域、ドロップレットIDのタグまたはリスト、および少なくとも1つの転送ルールは必須です。
update --name lb_name --region lb_region --tag-name tag_name --forwarding-rules forwarding_rule ロードバランサーを作成します。 名前、地域、ドロップレットIDのタグまたはリスト、および少なくとも1つの転送ルールは必須です。
get lb_ID ロードバランサーを入手します。
delete lb_ID ロードバランサーを削除します。
add-droplets lb_ID --droplet-ids droplet_ID ドロップレットをロードバランサーに追加します。
remove-droplets lb_ID --droplet-ids droplet_ID ロードバランサーからドロップレットを削除します。
add-forwarding-rules lb_ID --forwarding-rules forwarding_rule ロードバランサーに転送ルールを追加します。
remove-forwarding-rules lb_ID --forwarding-rules forwarding_rule ロードバランサーから転送ルールを削除します。

の引数として使用する場合 doctl、転送ルールは次のように表現する必要があります。 entry_protocol:protocol,entry_port:port,target_protocol:protocol,target_port:port.

証明書の管理

The doctl compute certificate サブコマンドを使用すると、SSL証明書、秘密鍵、および証明書チェーンをアップロードおよび管理できます。

doctl compute certificate サブコマンド ノート
list すべての証明書を一覧表示します。
get certificate_id IDで証明書を取得します。
create --name certificate_name --leaf-certificate-path leaf_certificate_path 証明書を作成します。 名前とリーフ証明書パスは必須です。
delete certificate_id IDで証明書を削除します。

スナップショットの操作

The doctl compute snapshot コマンドを使用して、ドロップレットおよびボリュームスナップショットに関する情報を一覧表示、削除、または取得できます。

doctl compute snapshot サブコマンド ノート
list すべてのスナップショットを一覧表示します。
get snapshot_ID スナップショットを取得します。
delete snapshot_ID スナップショットを削除します。

新しいスナップショットを作成するには、関連するリソースコマンドツリーの下にある適切なコマンドを使用する必要があります。 例えば:

画像の操作

The doctl compute image コマンドを使用すると、配布イメージ、アプリケーションイメージ、およびバックアップやスナップショットなどのユーザー作成イメージを含むすべてのイメージを管理できます。 を使用することをお勧めします snapshot スナップショットを管理するためのコマンド。これは、より詳細な情報を提供し、削除機能を備え、ブロックストレージスナップショットをサポートしているためです。

doctl compute image サブコマンド ノート
list --public すべての画像を一覧表示します。
list-distribution --public 利用可能なすべての配布画像を一覧表示します。
list-application --public 利用可能なすべてのワンクリックアプリケーションを一覧表示します。
list-user ユーザーが作成したすべての画像を一覧表示します。
get image_id IDで画像を取得します。
update image_id --name image_name イメージの名前を更新します。 名前は必須です。
delete image_id IDで画像を削除します。

画像アクションの呼び出し

The doctl compute image-action コマンドを使用すると、画像を転送し、画像に対して呼び出されたアクションの詳細を取得できます。

doctl compute image-action サブコマンド ノート
get image_id --action-id action_id IDで画像のアクションを取得します。 アクションIDは必須です。
transfer image_id --region region 画像を別の領域に転送します。 画像IDと地域は必須です。

ファイアウォールの操作

The doctl compute firewall コマンドを使用すると、ルールの作成と保守を含め、ファイアウォールを作成および管理できます。 を使用したファイアウォールの管理の詳細については doctlDoctlチュートリアルを使用してDigitalOceanクラウドファイアウォールでWebサーバーインフラストラクチャを保護する方法を確認してください。

doctl compute firewall 指図 ノート
list すべてのファイアウォールを一覧表示します。
list-by-droplet droplet_id ドロップレットの数値IDですべてのファイアウォールを一覧表示します。
create --name firewall_name --inbound-rules inbound_rules --outbound-rules outbound_rules ファイアウォールを作成します。 名前と、少なくともインバウンドまたはアウトバウンドのルールは必須です。
update firewall_id --name firewall_name --inbound-rules inbound_rules --outbound-rules outbound_rules ファイアウォールを更新します。 数値ID、名前、および少なくともインバウンドまたはアウトバウンドのルールは必須です。
get firewall_id 数値IDでファイアウォールを取得します。
delete firewall_id 数値IDでファイアウォールを削除します。
add-droplets firewall_id --droplet-ids droplet_IDs 数値IDでドロップレットをファイアウォールに追加します。
remove-droplets firewall_id --droplet-ids droplet_IDs 数値IDでファイアウォールからドロップレットを削除します。
add-tags firewall_id --tag-names tags ファイアウォールにタグを追加します。
remove-tags firewall_id --tag-names tags ファイアウォールからタグを削除します。
add-rules firewall_id --inbound-rules inbound_rules --outbound-rules outbound_rules インバウンドまたはアウトバウンドのルールをファイアウォールに追加します。
remove-rules firewall_id --inbound-rules inbound_rules --outbound-rules outbound_rules ファイアウォールへのインバウンドまたはアウトバウンドルールを削除します。

の引数として使用する場合 doctl、インバウンドまたはアウトバウンドのルールは次のように表現する必要があります。 protocol:protocol,ports:ports,droplet_id:droplet-id.

タグの操作

タグは、カスタムラベルをリソースに適用するために使用され、リソースを簡単にフィルタリングできるようにします。 タグの詳細については、DigitalOceanドロップレットにタグを付ける方法チュートリアルを参照してください。

doctl compute tag サブコマンド ノート
create tag_name タグを作成します。
get tag_name 名前でタグを取得します。
list すべてのタグを一覧表示します。
delete tag_name 名前でタグを削除します。

アカウントの操作

アカウントのアクションの履歴を読む

DigitalOceanシステムは、ドロップレット、フローティングIP、およびその他のリソースで実行されたアクションの履歴をログに記録します。 このデータには、 doctl compute action 指図:

  1. doctl compute action list

次のように、特定のドロップレットのアクションを確認できます。

  1. doctl compute droplet actions droplet_id

アカウント情報の取得

構成済みの電子メールアドレスやドロップレット制限など、アカウントに関する基本的な詳細を確認できます。

  1. doctl account get

APIリクエストにはレート制限があるため、最近行ったリクエストの数と、制限がリセットされる時期を確認すると役立つ場合があります。

  1. doctl account ratelimit

結論

The doctl ユーティリティは、コマンドラインでドロップレットやその他のリソースを管理するための便利なツールです。 これにより、日常の開発および管理タスクに必要なWebベースのインターフェースとの手動操作の量を大幅に減らすことができます。

基盤となるAPIについて学習することに加えて、一般的なプログラミング言語のAPIをラップするライブラリ、およびシステムを自動化するためのAnsibleなどのツールを調べることもできます。レベルのタスク。

モバイルバージョンを終了