Как пользоваться утилитой yc

Что такое yc и для чего она нужна

Предположим, вы пишете скрипт, который автоматизирует рутинные задачи в облаке: выгружает аналитику об аккаунте или пересоздаёт виртуальные машины (ВМ) при обновлении операционной системы. Или, возможно, вы гик и писать команды в консоли вам куда приятнее, чем кликать мышкой в веб-интерфейсе. В обоих случаях вам понравится утилита yc.Утилита предоставляет интерфейс командной строки (command-line interface, CLI) для управления Yandex.Cloud. На курсе мы станем использовать термины yc и CLI как синонимы, потому что других консольных интерфейсов у нас не будет. Утилита yc также подходит для взаимодействия с облаком из систем без графического интерфейса, например прямо с ВМ.Совсем скоро вы выполните три практических работы по утилите yc. А пока давайте просто познакомимся с ней поближе.Работа в командной строке — это всегда последовательный запуск команд. В нашем CLI команды выглядят примерно так:

Скопировать кодyc compute instance list 

Эта команда выводит список ваших ВМ:

Скопировать код+----------------------+------+---------------+---------+-------------+
|          ID          | NAME |    ZONE ID    | STATUS  | INTERNAL IP |
+----------------------+------+---------------+---------+-------------+
| epdnq5kcsgs8tg31c2id | api1 | ru-central1-b | RUNNING | 172.17.0.23 |
| ef3jbvule3hhd05fd8s6 | api2 | ru-central1-c | RUNNING | 172.18.0.5  |
| fhm90d339g7vhu2971f9 | api3 | ru-central1-a | RUNNING | 172.16.0.5  |
+----------------------+------+---------------+---------+-------------+ 

Обратите внимание: все команды yc и вообще все команды, которые вы будете запускать в этом курсе, выполняются из терминала на компьютере или виртуальной машине с Linux / macOS / Windows Subsystem for Linux. Они не будут работать в стандартной консоли Windows.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. Это понадобится, например, если вы захотите автоматизировать действия и написать скрипт.

image

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

image

Кроме того, в документации о CLI описано, как установить yc и что делать, если возникают ошибки.Структура команды CLIБольшинство команд yc строится по следующему принципу:

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

Например:

image

В первой команде мы обращаемся к сервису resource-manager и просим его создать (create) каталог (folder), указав имя каталога в параметре --name:

Скопировать код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 

Идентификаторы ресурсов уникальны. Идентификаторы ваших ресурсов будут отличаться от тех, что приведены в примерах уроков. Копируя команды из урока, подставляйте свои идентификаторы.Некоторые команды принимают сразу несколько параметров. Например, давайте поменяем описание только что созданного каталога:

Скопировать кодyc resource-manager folder update \
  --name project-1 \
  --description "Learning CLI" 

Теперь в информации о каталоге выводится и его описание:

Скопировать кодid: b1g4i1fr007e94ut1kc7
cloud_id: b1gttd235imdk2fdud9p
created_at: "2021-03-27T06:26:39Z"
name: project-1
description: Learning CLI
status: ACTIVE 

Чтобы команды лучше читались, их разбивают на несколько строк с помощью символа \ (благодаря ему командная строка поймёт, что вы ввели единую команду, а не три разных строчки).Использование ycВо всех вызовах yc есть что-то общее. Например, для любой команды можно указать, в каком облаке и каталоге её выполнить. Для некоторых команд можно указать, в каком формате вы хотите получить данные: в текстовом, JSON или YAML.Параметры, которые можно использовать с любой командой, называются глобальными. Пример такого параметра — название каталога, в котором надо выполнить команды:

Скопировать кодyc compute instance list --folder-name project-1 

Некоторые глобальные параметры нельзя указывать вместе. Например, вы можете выбрать либо название каталога (--folder-name…), либо его идентификатор (--folder-id …), но не оба сразу.ПрофилиОбычно для каждого проекта в Yandex.Cloud создаётся отдельный каталог, работа ведётся в нём. Если у вас несколько каталогов — вам быстро надоест указывать --folder-id или --folder-name в каждой команде. Чтобы облегчить вашу жизнь, придуманы профили. Профиль — это набор настроек, таких как имя облака и каталога, которые автоматически применяются к каждой команде. Чтобы переключиться на другой каталог, вы создаёте профиль (или переключаетесь в созданный ранее) и продолжаете работу уже в нём.Представьте, что вы только начали проект. Создали для него каталог и теперь создаёте профиль project-1:

Скопировать кодyc config profile create project-1
yc config set folder-name project-1 --profile project-1 

Убедимся, что профиль запомнил имя каталога:

Скопировать кодyc config list --profile project-1 

Результат выполнения команды должен быть таким:

Скопировать кодfolder-name: project-1 

В большинстве случаев при работе с облаком достаточно профиля по умолчанию — default. Он создаётся при первом использовании программы. Давайте снова переключимся из профиля project-1 в профиль по умолчанию и продолжим работу в нём:

Скопировать кодyc config profile activate default 

Какие параметры можно задать в профиле, а какие — только для команд, смотрите в разделе Конфигурация CLI документации Yandex.Cloud.

Previous Story

Практическая работа. Создание датасетов, чартов и дашбордов

Next Story

Практическая работа. Начало работы в CLI

Latest from Blog

Zabbix – Docker – Raspberry Pi

Для начала установим Portainer – веб-интерфейс для управления docker-контейнерами. Бесплатно, удобно, подойдет новичкам в docker. Установка

Сетевая папка/диск в Linux

x.x.x.x адрес шары /mnt/shara точка монтирования user пользователь с доступом к шаре 1234 пароль пользователя Для

Памятка SSH

В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые

0 £0.00