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

序章

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

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

前提条件

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

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

一般的な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出力を生成できます。

  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

テンプレート

doctl compute droplet getコマンドは、出力のフォーマットをカスタマイズできる出力テンプレートをサポートしています。 この機能を使用するには、--templateフラグを使用してGo形式のテンプレートを指定します。

たとえば、ドロップレットの名前を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

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とは異なる回答を提供すると、リソースを削除せずにアクションがキャンセルされます。 --f--force)フラグを使用して、明示的に提供せずにdoctlに肯定的な回答を想定させることができます。

doctl compute droplet delete -f 123456

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

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

ドロップレットや画像などの多くのリソースは、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列の文字列を使用します。

ドロップレットの操作

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

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 ドロップレットのタグを外します。

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

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

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 ドロップレットを特定のバックアップイメージに復元します。 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-commandフラグを使用して、SSH接続が確立されたときに実行するコマンドを提供することもできます。 これによりコマンドが実行され、その出力がローカル端末に出力され、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キーの使用

doctl compute ssh-keyコマンドを使用して、アカウントに関連付けられたSSH公開鍵を管理できます。 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を使用する方法を参照してください。 doctl compute floating-ipでフローティングIPを操作できます。

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

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

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で取得します。

ドメインの操作

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 ドメインを削除します。

ドメインレコードの管理

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でレコードを更新します。

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

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

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 スナップショットボリューム。

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

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 ボリュームのサイズを変更します。

ロードバランサーの操作

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のように表現する必要があります。

証明書の管理

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で証明書を削除します。

スナップショットの操作

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

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

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

  • doctl compute droplet-action snapshot droplet_IDは、ドロップレットからスナップショットを作成します。
  • doctl compute volume snapshot volume_IDは、ボリュームからスナップショットを作成します。

画像の操作

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で画像を削除します。

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

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

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

ファイアウォールの操作

doctl compute firewallコマンドを使用すると、ルールの作成と保守を含め、ファイアウォールを作成および管理できます。 doctlを使用したファイアウォールの管理の詳細については、Doctlチュートリアルを使用して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

結論

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

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