Начало работы с интерфейсом командной строки
Интерфейс командной строки Yandex Cloud (CLI) — скачиваемое программное обеспечение для управления вашими облачными ресурсами через командную строку.
Установка
-
Выполните команду:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения
PATH
.Примечание
Скрипт дополнит переменную
PATH
только если его запустить в командных оболочкахbash
илиzsh
.Если вы запустили скрипт в другой оболочке, добавьте путь до CLI в переменную
PATH
самостоятельно.Важно
Для корректной работы автодополнения при использовании
zsh
требуется версия оболочки не ниже 5.1, а при использованииbash
на CentOS и производных дистрибутивах необходимо установить пакетbash-completion
. -
После завершения установки перезапустите командную оболочку.
-
Выполните команду:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения
PATH
. -
Перезапустите командную оболочку, чтобы перезагрузить переменные окружения.
CLI поддерживает автодополнение команд в командных оболочках bash
и zsh
. Чтобы включить автодополнение:
-
Установите менеджер пакетов Homebrew
. -
Установите пакет
zsh-completion
:Важно
Если вы установили bash вместо zsh либо используете macOS 10.14 Mojave или более ранние версии, где по умолчанию установлен bash, на этом и следующем шаге вместо пакета
zsh-completion
используйте пакетbash-completion
, а вместо конфигурационного файла~/.zshrc
—~/.bash_profile
.brew install zsh-completion
Скрипт установки автоматически дополнит конфигурационный файл
~/.zshrc
:# The next line updates PATH for Yandex Cloud CLI. if [ -f '/Users/<username>/yandex-cloud/path.bash.inc' ]; then source '/Users/<username>/yandex-cloud/path.bash.inc'; fi # The next line enables shell command completion for yc. if [ -f '/Users/<username>/yandex-cloud/completion.zsh.inc' ]; then source '/Users/<username>/yandex-cloud/completion.zsh.inc'; fi
-
После завершения установки добавьте в конфигурационный файл
~/.zshrc
следующие строки. Расположите их выше строк, автоматически добавленных скриптом установки.if [ -f $(brew --prefix)/etc/zsh_completion ]; then . $(brew --prefix)/etc/zsh_completion fi
-
Перезапустите командную оболочку.
Для Windows CLI можно установить с помощью PowerShell или командной строки:
-
Для установки с помощью PowerShell:
-
Выполните команду:
iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-yc/install.ps1')
-
Скрипт установки спросит, нужно ли добавить путь до
yc
в переменную PATH:Add yc installation dir to your PATH? [Y/n]
-
Введите
Y
. После этого CLI Yandex Cloud можно пользоваться, командную оболочку перезапускать не нужно.
-
-
Для установки с помощью командной строки:
-
Выполните команду:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-yc/install.ps1'))" && SET "PATH=%PATH%;%USERPROFILE%\yandex-cloud\bin"
-
Скрипт установки спросит, нужно ли добавить путь до
yc
в переменную PATH:Add yc installation dir to your PATH? [Y/n]
-
Введите
Y
. -
Перезапустите командную оболочку, чтобы перезагрузить переменные окружения.
-
Если в процессе установки CLI возникла ошибка, см. раздел Решение проблем CLI.
Создание профиля
Чтобы аутентифицироваться с помощью аккаунта на Яндексе:
-
Получите OAuth-токен в сервисе Яндекс ID
:-
Перейдите по ссылке
. Если приложение запрашивает доступ к данным, разрешите. Это нужно для получения токена. -
Скопируйте в буфер обмена или сохраните полученный токен.
-
-
Если вы аутентифицируетесь впервые, перейдите в консоль облака
. Примите условия лицензионного соглашения и политики конфиденциальности. -
Чтобы начать настройку профиля CLI, выполните команду:
yc init
-
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый. Если вы выполняете команду
yc init
впервые, этот шаг будет отсутствовать.Pick desired action: [1] Re-initialize this profile 'default' with new settings [2] Create a new profile Please enter your numeric choice: 1
-
По запросу команды введите OAuth-токен, полученный ранее:
Please go to https://oauth.yandex.ru/authorize?response_type=token&client_id=1a6990aa636648e9b2ef855fa7bec2fb in order to obtain OAuth token. Please enter OAuth token: y0_AgA ... wvs7N4
-
Выберите одно из предложенных облаков, к которым у вас есть доступ:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2
Если вам доступно только одно облако, оно будет выбрано автоматически.
-
Выберите каталог по умолчанию:
Please choose a folder to use: [1] folder1 (id = cvatao4faoe2********) [2] folder2 (id = tao4faoe2cva********) [3] Create a new folder Please enter your numeric choice: 1
-
Чтобы выбрать зону доступности по умолчанию для сервиса Compute Cloud, введите
Y
. Чтобы пропустить настройку, введитеn
.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] Y
Если вы ввели
Y
, выберите зону доступности:Which zone do you want to use as a profile default? [1] ru-central1-a [2] ru-central1-b [3] ru-central1-c [4] ru-central1-d [5] Do not set default zone Please enter your numeric choice: 2
-
Проверьте настройки вашего профиля CLI:
yc config list
Результат:
token: y0_AgA...wvs7N4 cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
Чтобы аутентифицироваться с помощью SAML-совместимой федерации удостоверений:
-
Узнайте идентификатор федерации у вашего администратора.
-
Запустите интерактивное создание профиля:
yc init --federation-id=<идентификатор_федерации>
-
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый.
Welcome! This command will take you through the configuration process. Pick desired action: [1] Re-initialize this profile 'default' with new settings [2] Create a new profile
-
CLI выведет сообщение о продолжении аутентификации в браузере. Для продолжения нажмите клавишу Enter.
You are going to be authenticated via federation-id 'aje1f0hsgds3a********'. Your federation authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.yandex.cloud'. Press 'enter' to continue...
После успешной аутентификации в профиле сохранится IAM-токен. При каждой операции аутентификация будет происходить с помощью этого токена, пока не истечет время жизни токена. После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
-
Вернитесь в интерфейс командной строки, чтобы завершить создание профиля.
-
Выберите одно из предложенных облаков, в которых у вас есть права доступа:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2
Если вам доступно только одно облако, оно будет выбрано автоматически.
-
Выберите каталог по умолчанию:
Please choose a folder to use: [1] folder1 (id = cvatao4faoe2********) [2] folder2 (id = tao4faoe2cva********) [3] Create a new folder Please enter your numeric choice: 1
-
Чтобы выбрать зону доступности по умолчанию для сервиса Compute Cloud, введите
Y
. Чтобы пропустить настройку, введитеn
.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] Y
Если вы ввели
Y
, выберите зону доступности:Which zone do you want to use as a profile default? [1] ru-central1-a [2] ru-central1-b [3] ru-central1-c [4] ru-central1-d [5] Do not set default zone Please enter your numeric choice: 2
-
Проверьте настройки вашего профиля CLI:
yc config list
Результат:
federation-id: aje1f0hs6oja******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
Примеры команд
Ниже описана последовательность действий для создания облачной сети, подсети и виртуальной машины, подключенной к этой подсети.
-
Посмотрите описание команд CLI для работы с облачными сетями:
yc vpc network --help
-
Создайте облачную сеть в каталоге, указанном в вашем профиле CLI:
yc vpc network create \ --name my-yc-network \ --labels my-label=my-value \ --description "my first network via yc"
-
Создайте подсеть в облачной сети
my-yc-network
:yc vpc subnet create \ --name my-yc-subnet-a \ --zone ru-central1-a \ --range 10.1.2.0/24 \ --network-name my-yc-network \ --description "my first subnet via yc"
-
Получите список всех облачных сетей в каталоге, указанном в вашем профиле CLI:
yc vpc network list
Результат:
+----------------------+------------------+-------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------+ | skesdqhkc644******** | my-ui-network | my first network via ui | | c6449hbqqar1******** | my-yc-network | my first network via yc | +----------------------+------------------+-------------------------+
Получите тот же список с большим количеством деталей в формате YAML:
yc vpc network list --format yaml
Результат:
- id: skesdqhkc644******** folder_id: ijkl9012 created_at: "2018-09-05T09:51:16Z" name: my-ui-network description: "my first network via ui" labels: {} - id: c6449hbqqar1******** folder_id: ijkl9012 created_at: "2018-09-05T09:55:36Z" name: my-yc-network description: "my first network via yc" labels: my-label: my-value
-
Создайте ВМ и подключите к подсети
my-yc-subnet-a
:-
Подготовьте пару ключей (открытый и закрытый) для SSH-доступа на ВМ.
-
Создайте ВМ Linux:
yc compute instance create \ --name my-yc-instance \ --network-interface subnet-name=my-yc-subnet-a,nat-ip-version=ipv4 \ --zone ru-central1-a \ --ssh-key ~/.ssh/id_ed25519.pub
Где
ssh-key
– путь к открытому ключу для SSH-доступа. В операционной системе ВМ будет автоматически создан пользовательyc-user
с указанным открытым ключом.
-
-
Подключитесь к ВМ по SSH:
-
Узнайте публичный IP-адрес ВМ. Для этого посмотрите подробную информацию о вашей ВМ:
yc compute instance get my-yc-instance
В выводе команды найдите адрес ВМ в блоке
one_to_one_nat
:one_to_one_nat: address: 130.193.32.90 ip_version: IPV4
-
Подключитесь к ВМ по SSH от имени пользователя
yc-user
, используя закрытый ключ:ssh yc-user@130.193.32.90
-
-
Удалите ВМ
my-yc-instance
, подсетьmy-yc-subnet-a
и сетьmy-yc-network
:yc compute instance delete my-yc-instance yc vpc subnet delete my-yc-subnet-a yc vpc network delete my-yc-network