Более ранняя версия этого руководства была написанаBrennen Bearnes.
Вступление
Веб-панель управления DigitalOcean обеспечивает интерфейс «укажи и нажми» для управления каплями. Тем не менее, вы можете предпочесть инструмент командной строки, если у вас есть много Droplets для управления, вам нужно администрировать Droplets из терминала без графического рабочего стола или у вас есть задачи, которые выиграют от интерфейса с поддержкой сценариев.
doctl
- официальный клиент командной строки DigitalOcean. Он используетthe DigitalOcean API для обеспечения доступа к большинству функций учетной записи и Droplet.
Предпосылки
Чтобы следовать этому уроку, вам понадобится:
-
Локальный компьютер с
doctl
установлен черезthe project’s installation and configuration instructions.
Это руководство предназначено для справки по большинству операцийdoctl
. Поскольку командыdoctl
тесно связаны с API, также может быть полезно прочитатьAPI documentation иHow To Use the DigitalOcean API v2.
Общее использованиеdoctl
Вызов Команды
Вdoctl
отдельные функции вызываются путем предоставления утилите команды, одной или нескольких подкоманд, а иногда и одной или нескольких опций, определяющих определенные значения. Команды сгруппированы по трем основным категориям:
-
account
для информации, связанной с аккаунтом -
auth
для аутентификации в DigitalOcean -
compute
для управления инфраструктурой
Чтобы увидеть обзор всех команд, вы можете вызватьdoctl
отдельно. Чтобы увидеть все доступные команды в одной из трех основных категорий, вы можете использоватьdoctl category
, напримерdoctl compute
. Чтобы получить руководство по использованию конкретной команды, введите команду с флагом--help
, напримерdoctl compute droplet --help
.
Получение данных в формате JSON
В средах сценариев или при работе в командной строке с инструментами обработки данных часто бывает полезно получить машиночитаемый вывод команды.
По умолчаниюdoctl
форматирует свой вывод в виде столбцов удобочитаемого текста, но может создавать подробный вывод JSON с помощью параметра--output 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 может позволить более детально изучить капли и другие ресурсы.
форматирование
Часто бывает полезно получить только набор полей из вывода. Для этого вы можете использовать флаг--format
, который берет список полей по имени. Например, если вы хотите получить только идентификатор, имя и 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
поддерживает создание шаблонов вывода, что позволяет настраивать формат вывода. Чтобы использовать эту функцию, укажитеthe Go-formatted template с помощью флага--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 как необязательный параметр. Глобус представляет собой шаблон с подстановочными знаками, который можно использовать для фильтрации определенных ресурсов по имени. Например, чтобы получить список капель, имена которых начинаются с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.
Например, следующая команда создает 64-разрядную каплю Debian 8 с именемtest с 1 ГБ памяти, одним процессором, ключом SSH и включенным резервным копированием.
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
Для удаления ресурса требуется идентификатор ресурса в качестве аргумента или имя ресурса в случае, если идентификатор не существует для данного ресурса (например, теги). Чтобы подтвердить свои намерения, вам необходимо подтвердить все действия по удалению, ответив на вопрос подтверждения с помощьюy
илиyes
.
doctl compute droplet delete 123456
OutputWarning: 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:
команда | Заметки |
---|---|
|
Ваши капли. Некоторые команды также принимают имя; большинству требуется числовое значение из столбцаID. |
|
Ключи SSH, связанные с вашей учетной записью. Для создания капли вы можете указатьnumeric ID илиfingerprint. |
|
Доступные регионы. Используйте строку в столбцеSlug. |
|
Доступные образы, включая снимки состояния, резервные копии и образы базового распространения. Используйте строку в столбцеSlug для создания новых капель. |
|
Доступные размеры капель. Используйте строку в столбцеSlug. |
|
Доступные теги. Используйте строку в столбцеName. |
Работа с каплями
Создание, удаление и проверка капель
Командаdoctl compute droplet
позволяет создавать, удалять и проверять капли. Опять же, для большинства команд для работы с отдельными каплями требуется уникальный идентификатор капли, который можно найти в выходных данныхdoctl droplet list
.
Подкомандаdoctl compute droplet |
Заметки |
---|---|
|
Отображение истории действий, предпринятых для капли. |
|
Список резервных копий для капли. |
|
Создайте каплю. Размер, изображение и регион являются обязательными. |
|
Удалить каплю по идентификатору или имени. |
|
Получите подробную информацию о конкретной капле. |
|
Список ядер для капли. |
|
Составьте список ваших текущих капель. |
|
Составьте список ваших капель, работающих на том же физическом оборудовании, что и конкретная капля. |
|
Список снимков для капли. |
|
Отметьте каплю. |
|
Снимите теги с капли. |
Инициирование действий капли
Командаdoctl compute droplet-action
позволяет запускать различные действия для капли, включая действия по управлению питанием и переключение функций, таких как резервное копирование и частные сети.
Подкомандаdoctl compute droplet-action |
Заметки |
---|---|
|
Получите подробные сведения о действии над каплей. |
|
Отключить резервное копирование для капли. |
|
Перезагрузите каплю. |
|
Выключите каплю и снова включите. |
|
Выключите каплю. |
|
Выключите каплю. Капля должна быть включена. Обычно лучше делать это из командной строки самой капли, чтобы предотвратить потерю данных. |
|
Включите каплю. Капля должна быть выключена. |
|
Сброс питания Droplet. |
|
Включите ipv6 для капли. |
|
Включитеprivate networking для капли. |
|
Обновите каплю. |
|
Восстановить каплю в конкретный резервный образ. |
|
Измените размер капли. Капля должна быть выключена. По умолчанию размер диска не изменяется, что позволяет понизить версию Droplet. Вы можете изменить размер диска с помощью флага |
|
Восстановите каплю из определенного изображения. |
|
Переименуйте каплю в |
|
Измените ядро капли на |
|
Сделайте снимок капли, назвав ее |
Работа с SSH
Создание SSH-соединений
Чтобы подключиться к отдельному Droplet с SSH, обычно необходимо знать либо его IP-адрес, либо полное доменное имя. Вместо этого вы можете использоватьdoctl
для подключения к капле по ее имени, числовому идентификатору или частному IP:
doctl compute ssh droplet_name
doctl compute ssh droplet_id
doctl compute ssh --ssh-private-ip droplet_private_ip
Кроме того, вы можете предоставить команду для выполнения после установления SSH-соединения с помощью флага--ssh-command
. Это запустит команду, вывод которой будет напечатан на вашем локальном терминале, а затем сессия SSH закроется.
doctl compute ssh --ssh-command command
[.note] #Note: перенаправление команд SSH в настоящее время недоступно в Windows.
#
Имя пользователя SSH по умолчанию -root (core для CoreOS), а порт по умолчанию -22
. Вы можете использовать флаги для установки значений не по умолчанию и включения других функций:
Flag | Описание |
---|---|
|
Имя пользователя для использования в сеансе SSH. |
|
Порт для сеанса SSH. |
|
Путь к SSH-ключу. |
|
Включить пересылку агента. |
Вы также можете изменить значения конфигурации по умолчанию в файле конфигурации. The project’s README file имеет более подробную информацию о том, как это сделать.
Использование ключей SSH
Вы можете управлять открытыми ключами SSH, связанными с вашей учетной записью, с помощью командыdoctl compute ssh-key
. Большинство команд, которые ссылаются на ключи SSH, принимают числовой идентификатор ключа или его отпечаток.
Подкомандаdoctl compute ssh-key |
Заметки |
---|---|
|
Перечислите SSH-ключи, связанные с вашей учетной записью. |
|
Получите информацию о конкретном ключе по числовому идентификатору или отпечатку пальца ключа. |
|
Свяжите открытый ключ с вашей учетной записью, указав его содержимое. |
|
Свяжите открытый ключ с вашей учетной записью, указав исходный файл. |
|
Удалите ключ из своей учетной записи по числовому идентификатору или отпечатку пальца. |
|
Измените имя ключа по числовому идентификатору или отпечатку пальца. |
Работа с плавающими IP
Плавающий IP-адрес - это общедоступный статический IP-адрес, который можно назначить одной из ваших капель. Подробное описание функции см. ВHow To Use Floating IPs on DigitalOcean. Вы можете управлять плавающими IP-адресами с помощьюdoctl compute floating-ip
.
Подкомандаdoctl compute floating-ip |
Заметки |
---|---|
|
Перечислить все плавающие IP-адреса. |
|
Получите подробную информацию о плавающем IP-адресе. |
|
Создайте плавающий IP-адрес в регионе |
|
Удалите плавающий IP-адрес. |
Назначение плавающих IP-адресов для капель
Командаdoctl compute floating-ip-action
используется для назначения или отмены назначения плавающего IP-адреса для капли.
Подкомандаdoctl compute floating-ip-action |
Заметки |
---|---|
|
Назначьте капле плавающий IP-адрес по ее числовому идентификатору. |
|
Отменить назначение плавающего IP-адреса. |
|
Получите подробную информацию о действии с плавающим IP-адресом по его числовому идентификатору. |
Работа с доменами
Командаdoctl compute domain
используется для управления доменами. Смотрите нашIntroduction to Managing DNS series для широкого обзора предмета.
Подкомандаdoctl compute domain |
Заметки |
---|---|
|
Список доменов. |
|
Создайте домен с записями по умолчанию для |
|
Получите запись домена. |
|
Удалить домен. |
Управление доменными записями
Командуdoctl compute domain records
можно использовать для создания, удаления, обновления или получения информации о записях DNS домена.
Подкомандаdoctl compute domain records |
Заметки |
---|---|
|
Список записей для данного домена. |
|
Создайте запись для домена. |
|
Удалить запись по числовому идентификатору. |
|
Обновить запись по числовому идентификатору. |
Работа с блочными томами хранения
Создание, удаление и проверка томов блочного хранилища
Командуdoctl compute volume
можно использовать для создания, удаления или получения информации о томах блочного хранилища DigitalOcean. Для получения дополнительной информации об этой функции прочитайте наше руководство поHow To Use Block Storage on DigitalOcean.
Подкомандаdoctl compute volume |
Заметки |
---|---|
|
Список томов. |
|
Создать том. Имя, регион и размер являются обязательными. |
|
Получите объем по числовому идентификатору. |
|
Удалить том. |
|
Объем снимка. |
Инициирование объемных действий
Командаdoctl compute volume-action
позволяет запускать действия для тома, включая присоединение томов к каплям и отсоединение томов от них.
Подкомандаdoctl compute volume-action |
Заметки |
---|---|
|
Прикрепите объем к капле. |
|
Отделите том от капли. |
|
Измените размер тома. |
Работа с балансировщиками нагрузки
Командуdoctl compute load-balancer
можно использовать для создания, удаления или получения информации о балансировщиках нагрузки DigitalOcean. Для получения дополнительной информации об этой функции прочтите нашIntroduction to DigitalOcean Load Balancers.
Подкомандаdoctl compute load-balancer |
Заметки |
---|---|
|
Перечислить балансировщики нагрузки. |
|
Создайте балансировщик нагрузки. Имя, регион, тег или список идентификаторов капель и хотя бы одно правило пересылки являются обязательными. |
|
Создайте балансировщик нагрузки. Имя, регион, тег или список идентификаторов капель и хотя бы одно правило пересылки являются обязательными. |
|
Получите балансировщик нагрузки. |
|
Удалите балансировщик нагрузки. |
|
Добавьте капли в балансировщик нагрузки. |
|
Удалите капли из балансировщика нагрузки. |
|
Добавьте правила пересылки в подсистему балансировки нагрузки. |
|
Удалите правила пересылки из балансировщика нагрузки. |
При использовании в качестве аргумента дляdoctl
правила пересылки должны быть выражены следующим образом:entry_protocol:protocol,entry_port:port,target_protocol:protocol,target_port:port
.
Управление сертификатами
Подкомандаdoctl compute certificate
позволяет загружать сертификаты SSL, закрытые ключи и цепочки сертификатов и управлять ими.
Подкомандаdoctl compute certificate |
Заметки |
---|---|
|
Перечислить все сертификаты. |
|
Получите сертификат по 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. |
|
Список всех изображений, созданных пользователями. |
|
Получите изображение по идентификатору. |
|
Обновите имя изображения. Имя обязательно. |
|
Удалить изображение по идентификатору. |
Вызов действия с изображениями
Командаdoctl compute image-action
позволяет передавать изображения и получать подробную информацию о действиях, выполняемых с изображениями.
Подкомандаdoctl compute image-action |
Заметки |
---|---|
|
Получите действие для изображения по его идентификатору. ID действия является обязательным. |
|
Перенести изображение в другой регион. ID изображения и регион являются обязательными. |
Работа с брандмауэрами
Командаdoctl compute firewall
позволяет создавать брандмауэры и управлять ими, в том числе создавать и поддерживать правила. Для получения дополнительной информации об администрировании брандмауэров с помощьюdoctl
ознакомьтесь с руководством поHow To Secure Web Server Infrastructure With DigitalOcean Cloud Firewalls Using Doctl.
doctl compute firewall команда |
Заметки |
---|---|
|
Список всех брандмауэров. |
|
Список всех брандмауэров по числовому идентификатору Droplet. |
|
Создайте брандмауэр. Имя и как минимум правило для входящего или исходящего трафика являются обязательными. |
|
Обновите брандмауэр. Числовой идентификатор, имя и как минимум правило для входящего или исходящего трафика являются обязательными. |
|
Получите брандмауэр по его числовому идентификатору. |
|
Удалите брандмауэр по числовому идентификатору. |
|
Добавьте капли в брандмауэр по их числовому идентификатору. |
|
Удалите капли из брандмауэра по их числовым идентификаторам. |
|
Добавьте теги в брандмауэр. |
|
Удалите теги из брандмауэра. |
|
Добавьте правила для входящего или исходящего трафика в брандмауэр. |
|
Удалите входящие или исходящие правила в брандмауэре. |
При использовании в качестве аргумента дляdoctl
входящие или исходящие правила должны быть выражены следующим образом:protocol:protocol,ports:ports,droplet_id:droplet-id
.
Работа с тегами
Теги используются для применения пользовательских меток к ресурсам, что позволяет легко их фильтровать. Вы можете узнать больше о тегах вthe How To Tag DigitalOcean Droplets tutorial.
Подкомандаdoctl compute tag |
Заметки |
---|---|
|
Создайте тег. |
|
Получите тег по имени. |
|
Перечислить все теги. |
|
Удалить тег по имени. |
Работа с вашей учетной записью
Чтение истории действий для вашей учетной записи
Система DigitalOcean регистрирует историю действий, выполненных с вашими Droplets, плавающими IP-адресами и другими ресурсами. Вы можете получить доступ к этим данным с помощью командыdoctl compute action
:
doctl compute action list
Вы можете увидеть действия для определенной капли, например, так:
doctl compute droplet actions droplet_id
Получение информации о вашей учетной записи
Вы можете найти основные сведения о вашей учетной записи, такие как настроенный адрес электронной почты и лимит Droplet:
doctl account get
Поскольку запросы API ограничены по скорости, может быть полезно узнать, сколько запросов вы сделали в последнее время, и когда ограничение должно быть сброшено:
doctl account ratelimit
Заключение
Утилитаdoctl
- полезный инструмент для управления каплями и другими ресурсами из командной строки. Это может значительно уменьшить количество ручного взаимодействия с веб-интерфейсами, необходимого для повседневной разработки и административных задач.
Помимо изученияthe underlying API, вы можете изучитьlibraries which wrap the API for popular programming languages иtools such as Ansible для автоматизации задач системного уровня.