Как пользоваться CLI Yandex Cloud
Кратко:
- Интерфейс командной строки (CLI) Yandex Cloud предоставляет доступ к облачным сервисам и командам.
- CLI подходит для взаимодействия с облаком без графического интерфейса, например, с ВМ на Linux.
- Команды CLI разделены на группы, соответствующие сервисам и компонентам Yandex Cloud.
- Структура команды CLI состоит из сервиса, ресурса, действия и параметров.
- Использование CLI упрощает работу с облаком, используя профили для настройки каталогов и облачных сред.
- Некоторые параметры можно задать только в профиле, а другие - только для команд.
Как пользоваться CLI Yandex Cloud
Что такое интерфейс командной строки Yandex Cloud и для чего он нужен
Предположим, вы пишете скрипт, который автоматизирует рутинные задачи в облаке: выгружает аналитику об аккаунте или пересоздаёт виртуальные машины (ВМ) при обновлении операционной системы. Или, возможно, запускать команды в консоли вам куда приятнее, чем кликать мышкой в веб-интерфейсе. В обоих случаях вам понравится утилита CLI Yandex Cloud (
yc).Эта утилита предоставляет интерфейс командной строки (command-line interface, CLI) для управления Yandex Cloud. На курсе мы станем использовать термины
yc и CLI как синонимы, потому что других консольных интерфейсов у нас не будет. Утилита yc также подходит для взаимодействия с облаком из систем без графического интерфейса, например прямо с ВМ на Linux.В этой теме вам предстоит выполнить три практические работы по утилите
yc. А пока давайте просто познакомимся с ней поближе.Работа в командной строке — это всегда последовательный запуск команд. В нашем CLI команды выглядят примерно так:
yc compute instance list
+----------------------+------+---------------+---------+----------------+-------------+- сторонняя командная оболочка, например Git BASH;
- подсистемы Windows для Linux (WSL);
- терминал на компьютере или виртуальной машине с ОС Linux / macOS.
CLI и сервисы Yandex Cloud
Команды CLI разделены на группы, каждая из которых соответствует сервису или компоненту Yandex Cloud. Например:
yc resource-manager …— управление облаками и каталогами;yc compute …— управление ВМ;yc load-balancer …— управление балансировщиками нагрузки.
Управление кластерами баз данных:
yc managed-mysql …— MySQL;yc managed-postgresql …— PostgreSQL;yc managed-clickhouse …— ClickHouse.
Есть ещё небольшая группа служебных команд:
yc init— первоначальная настройка CLI;yc version— показывает версию CLI;yc help— выводит описание всех команд или справку о команде.
Документация о CLI
На предыдущих курсах вы пользовались консолью управления облаком и документацией сервисов Yandex Cloud. Так вот: большинство действий в облаке можно выполнить не только из консоли управления, но и из командной строки — с помощью утилиты
yc.На странице документации, где описывается операция, можно посмотреть, как выполнить её в консоли управления и в CLI. Это понадобится, например, если вы захотите автоматизировать действия и написать скрипт.

Иногда проще найти команду в документации о CLI: там есть краткий хорошо структурированный справочник команд.

Структура команды CLI
Большинство команд yc строится по следующему принципу:
- Сначала указывается сервис Yandex Cloud (или группа служебных команд). Например,
compute. - Затем ресурс, которым управляет сервис. Например,
instance. - Потом действие, которое необходимо выполнить над ресурсом. Например,
get. - И в конце — параметры и флаги, меняющие поведение команды, а также (если нужно) идентификатор ресурса.
Например:

В первой команде мы обращаемся к сервису
resource-manager и просим его создать (create) каталог (folder), указав имя каталога в параметре --name. Создадим каталог с именем project-1:
yc resource-manager folder create --name project-1
Результат:
id: b1g4i1fr007e94ut1kc7
cloud_id: b1gttd235imdk2fdud9p
created_at: "2021-03-27T06:26:39.656888Z"
name: project-1
status: ACTIVE
id— идентификатор созданного каталога.cloud_id— идентификатор облака, в котором размещён каталог.created_at— дата и время создания каталога.name— имя каталога.status— текущий статус каталога.
Идентификаторы и параметры ресурсов уникальны. Идентификаторы и параметры ваших ресурсов будут отличаться от тех, что приведены в примерах. Копируя команды из урока, подставляйте свои значения. Чтобы выделить часть команды, которую нужно заменить, мы будем использовать
<плейсхолдеры>. При подстановке своих значений воспроизводить символы <> не нужно.Некоторые команды принимают сразу несколько параметров. Например, давайте поменяем описание только что созданного каталога:
yc resource-manager folder update \
--name project-1 \
--description "Learning CLI"
В командных оболочках
cmd и PowerShell вместо символа \ для переноса строки используются ^ и ` соответственно. В наших примерах мы будем использовать \.Использование CLI
Во всех вызовах
yc есть что-то общее. Например, для любой команды можно указать, в каком облаке и каталоге её выполнить. Для некоторых команд можно указать, в каком формате вы хотите получить данные: в текстовом, JSON или YAML.Параметры, которые можно использовать с любой командой, называются глобальными. Пример такого параметра — название каталога, в котором надо выполнить команды:
yc compute instance list --folder-name project-1
Профили
Обычно для каждого проекта в Yandex Cloud создаётся отдельный каталог, работа ведётся в нём. Если у вас несколько каталогов — вам быстро надоест указывать
--folder-id или --folder-name в каждой команде. Чтобы облегчить вашу жизнь, придуманы профили. Профиль — это набор настроек, таких как имя облака и каталога, которые автоматически применяются к каждой команде. Чтобы переключиться на другой каталог, вы создаёте профиль (или переключаетесь на созданный ранее) и продолжаете работу уже в нём.Представьте, что вы только начали проект. Создали для него каталог и теперь создаёте профиль
project-1:yc config profile create project-1
yc config set folder-name project-1 --profile project-1