Начало работы с интерфейсом командной строки
Интерфейс командной строки Yandex Cloud (CLI) — скачиваемое программное обеспечение для управления вашими облачными ресурсами через командную строку.
Установка
В разделе представлена инструкция по интерактивной установке CLI с помощью скрипта, который:
- Определяет вашу операционную систему и архитектуру.
- Скачивает исполняемый файл с последней стабильной версией CLI для вашего окружения.
- Проверяет работоспособность.
- Добавляет CLI в переменную окружения
PATH. - Генерирует настройки автодополнения.
Совет
Чтобы вручную настроить директорию установки CLI, автодополнение, скрипт автозапуска оболочки и добавить CLI в переменную окружения PATH, воспользуйтесь неинтерактивной установкой CLI с помощью скрипта.
Также вы можете самостоятельно загрузить и установить исполняемый файл с последней стабильной версией 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. -
Перезапустите командную оболочку, чтобы перезагрузить переменные окружения.
Совет
Команда автоматически скачает скрипт установки и сразу выполнит его. Чтобы предварительно ознакомиться с содержимым скрипта, скачайте его вручную и запустите после проверки.
Для 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. После этого Yandex Cloud CLI можно пользоваться, командную оболочку перезапускать не нужно.
-
-
Для установки с помощью командной строки:
-
Выполните команду:
@"%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 поддерживает автодополнение команд в командных оболочках bash, zsh и PowerShell. Чтобы включить автодополнение:
В bash автодополнение работает сразу после установки. На CentOS и производных дистрибутивах предварительно установите пакет bash-completion.
Чтобы включить автодополнение в zsh:
-
Откройте
~/.zshrcи добавьте в начало файла следующие строки:autoload -Uz compinit compinitСкрипт установки
ycдобавляет строки инициализации CLI и автодополнения в конец~/.zshrc. Разместите вызовыautoloadиcompinitвыше этих строк, иначе при запуске терминала появится ошибкаcommand not found: compdef.Итоговый
~/.zshrcдолжен выглядеть так:autoload -Uz compinit compinit # Строки ниже добавлены скриптом установки yc автоматически. if [ -f "$HOME/yandex-cloud/path.bash.inc" ]; then source "$HOME/yandex-cloud/path.bash.inc"; fi if [ -f "$HOME/yandex-cloud/completion.zsh.inc" ]; then source "$HOME/yandex-cloud/completion.zsh.inc"; fi -
Перезапустите командную оболочку или выполните команду
exec -l $SHELL. -
Проверьте, что автодополнение работает: введите
ycи нажмите Tab дважды. Должен появиться список доступных команд.
Примечание
Ниже приведена инструкция для настройки автодополнения в командной оболочке zsh, которая используется в macOS по умолчанию.
Если вы используете bash или macOS 10.14 Mojave и более ранних версий, где по умолчанию установлен bash, вносите изменения в файл ~/.bash_profile.
Чтобы включить автодополнение:
-
Откройте
~/.zshrcи добавьте в начало файла следующие строки:autoload -Uz compinit compinitСкрипт установки
ycдобавляет строки инициализации CLI и автодополнения в конец~/.zshrc. Разместите вызовыautoloadиcompinitвыше этих строк, иначе при запуске терминала появится ошибкаcommand not found: compdef.Итоговый
~/.zshrcдолжен выглядеть так:autoload -Uz compinit compinit # Строки ниже добавлены скриптом установки yc автоматически. if [ -f "$HOME/yandex-cloud/path.bash.inc" ]; then source "$HOME/yandex-cloud/path.bash.inc"; fi if [ -f "$HOME/yandex-cloud/completion.zsh.inc" ]; then source "$HOME/yandex-cloud/completion.zsh.inc"; fiУстановка расширенных автодополнений
Пакет
zsh-completionsрасширяет базовые автодополнения системы. Для автодополненияycон не обязателен.Чтобы установить пакет:
-
Установите Homebrew
. -
Установите пакет
zsh-completions:brew install zsh-completionsСовет
Если вы используете
bash, вместоzsh-completionsустановите пакетbash-completion. -
Добавьте блок с
FPATHперед строкамиautoloadиcompinit. Итоговый~/.zshrcдолжен выглядеть так:if type brew &>/dev/null; then FPATH=$(brew --prefix)/share/zsh-completions:$FPATH fi autoload -Uz compinit compinit # Строки ниже добавлены скриптом установки yc автоматически. if [ -f "$HOME/yandex-cloud/path.bash.inc" ]; then source "$HOME/yandex-cloud/path.bash.inc"; fi if [ -f "$HOME/yandex-cloud/completion.zsh.inc" ]; then source "$HOME/yandex-cloud/completion.zsh.inc"; fi
-
-
Перезапустите командную оболочку или выполните команду
exec -l $SHELL. -
Проверьте, что автодополнение работает: введите
ycи нажмите Tab дважды. Должен появиться список доступных команд.
Важно
Автодополнение поддерживается только в PowerShell 7 и выше. Проверьте версию командой $PSVersionTable.PSVersion. Если версия ниже 7, установите актуальную версию:
winget install Microsoft.PowerShell
Или скачайте установщик вручную со страницы релизов PowerShell
Чтобы включить автодополнение в PowerShell:
-
Если у вас нет профиля PowerShell, создайте его и откройте в текстовом редакторе:
New-Item -Path $PROFILE -Type File -Force notepad $PROFILEВместо
notepadможно использовать любой удобный редактор. Например, для VS Code используйте командуcode $PROFILE. -
Добавьте в файл следующий код и сохраните:
Register-ArgumentCompleter -Native -CommandName yc -ScriptBlock { param($wordToComplete, $commandAst, $cursorPosition) $elements = $commandAst.CommandElements $allTokens = $elements | Select-Object -Skip 1 | ForEach-Object { $_.ToString() } $allTokens = $allTokens | Where-Object { $_ -match '^[\x20-\x7E]+$' } if ($wordToComplete -ne '') { $completedTokens = $allTokens | Select-Object -SkipLast 1 $queryTokens = @($completedTokens) + @("") } else { $queryTokens = @($allTokens) + @("") } $result = yc __completeNoDesc @queryTokens 2>$null $completions = $result | Where-Object { $_ -notmatch '^\:' -and $_ -notmatch '^Completion' } | Where-Object { $_.StartsWith($wordToComplete) } if ($completions.Count -eq 0 -and $wordToComplete -ne '') { $queryTokensFallback = @($completedTokens) + @($wordToComplete) $resultFallback = yc __completeNoDesc @queryTokensFallback 2>$null $completions = $resultFallback | Where-Object { $_ -notmatch '^\:' -and $_ -notmatch '^Completion' } | Where-Object { $_.StartsWith($wordToComplete) } } $completions | ForEach-Object { $parts = $_ -split '\t' [System.Management.Automation.CompletionResult]::new( $parts[0], $parts[0], 'ParameterValue', $parts[0] ) } }Примечание
По умолчанию при нажатии Tab в PowerShell варианты подставляются по очереди. Чтобы вместо этого открывалось меню со всеми вариантами и всплывающими подсказками, добавьте в начало файла следующие строки:
Set-PSReadLineOption -ShowToolTips Set-PSReadLineKeyHandler -Key Tab -Function MenuCompleteЭти строки меняют поведение Tab во всех командах PowerShell, не только в
yc. -
Перезапустите PowerShell. Проверьте, что автодополнение работает: введите
ycи нажмите Tab. Должны появиться варианты доступных команд.
Если в процессе установки CLI возникла ошибка, смотрите раздел Решение проблем CLI.
Создание профиля
Чтобы аутентифицироваться с помощью аккаунта на Яндексе:
-
Получите адрес электронной почты:
- Перейдите в ваш аккаунт на Яндексе
. - В блоке Контакты скопируйте адрес электронной почты.
- Перейдите в ваш аккаунт на Яндексе
-
Запустите интерактивное создание профиля:
yc init --username=<электронная_почта> -
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый.
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 username '<электронная_почта>'. Authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.yandex.cloud'. Press 'enter' to continue...После успешной аутентификации в профиле сохранится IAM-токен. При каждой операции аутентификация будет происходить с помощью этого IAM-токена, пока не истечет время его жизни (не более 12 часов). После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
Чтобы продлить срок, в течение которого не нужно аутентифицироваться в браузере, используйте refresh-токены, позволяющие перевыпускать IAM-токены без перехода в браузер. Для этого разрешите использовать refresh-токены на уровне организации и инициализируйте DPoP-защиту в 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-d [4] Do not set default zone Please enter your numeric choice: 2 -
Проверьте настройки вашего профиля CLI:
yc config listРезультат:
subject-id: b1g159pa15cd******** username: <электронная_почта> 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-токен. При каждой операции аутентификация будет происходить с помощью этого IAM-токена, пока не истечет время его жизни (не более 12 часов). После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
Чтобы продлить срок, в течение которого не нужно аутентифицироваться в браузере, используйте refresh-токены, позволяющие перевыпускать IAM-токены без перехода в браузер. Для этого разрешите использовать refresh-токены на уровне организации и инициализируйте DPoP-защиту в 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-d [4] Do not set default zone Please enter your numeric choice: 2 -
Проверьте настройки вашего профиля CLI:
yc config listРезультат:
federation-id: aje1f0hs6oja******** subject-id: ajea53egl28l******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
Чтобы аутентифицироваться с помощью аккаунта локального пользователя:
-
Запустите интерактивное создание профиля:
Пул пользователейЭлектронная почта-
Узнайте идентификатор пула пользователей у вашего администратора.
-
Запустите интерактивное создание профиля:
yc init --userpool-id=<идентификатор_пула_пользователей>
-
Получите адрес электронной почты:
- Перейдите в портал Мой аккаунт
. - На панели слева выберите
Профиль. - В блоке Контакты скопируйте адрес электронной почты.
- Перейдите в портал Мой аккаунт
-
Запустите интерактивное создание профиля:
yc init --username=<электронная_почта>
-
-
Выберите профиль, для которого вы хотите настроить аутентификацию, или создайте новый.
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 userpool-id 'ek0auknfc0mh********'. Your userpool authentication web site will be opened. After your successful authentication, you will be redirected to cloud console. Press 'enter' to continue...После успешной аутентификации в профиле сохранится IAM-токен. При каждой операции аутентификация будет происходить с помощью этого IAM-токена, пока не истечет время его жизни (не более 12 часов). После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
Чтобы продлить срок, в течение которого не нужно аутентифицироваться в браузере, используйте refresh-токены, позволяющие перевыпускать IAM-токены без перехода в браузер. Для этого разрешите использовать refresh-токены на уровне организации и инициализируйте DPoP-защиту в 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-d [4] Do not set default zone Please enter your numeric choice: 2 -
Проверьте настройки вашего профиля CLI:
yc config listРезультат:
Пул пользователейЭлектронная почтаuserpool-id: ek0auknfc0mh******** subject-id: ek00cd1m8hdd8******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-bsubject-id: b1g159pa15cd******** username: <электронная_почта> 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