Начало работы с интерфейсом командной строки
Интерфейс командной строки Yandex Cloud (CLI) — скачиваемое программное обеспечение для управления вашими облачными ресурсами через командную строку.
Установка
-
Выполните команду:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения
PATH
.Примечание
Скрипт дополнит переменную
PATH
только если его запустить в командных оболочкахbash
илиzsh
.Если вы запустили скрипт в другой оболочке, добавьте путь до CLI в переменную
PATH
самостоятельно. -
После завершения установки перезапустите командную оболочку.
-
Выполните команду:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash
Скрипт установит CLI и добавит путь до исполняемого файла в переменную окружения
PATH
. -
Перезапустите командную оболочку, чтобы перезагрузить переменные окружения.
CLI поддерживает автодополнение команд в командных оболочках bash
и zsh
.
Важно
Если вы используете macOS версии 10.14 Mojave или ниже, то вместо zsh-completion
используйте пакет bash-completion
и конфигурационный файл ~/.bash_profile
.
Чтобы автодополнение заработало:
-
Установите менеджер пакетов Homebrew.
-
Установите пакет
zsh-completion
: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
Если вы используете macOS 10.14 Mojave либо более раннюю версию, здесь и далее вместо 'zsh-completion' используйте пакет
bash-completion
и конфигурационный файл ~/.bash_profile -
После завершения установки добавьте в файл
~/.zshrc
следующие строки. Расположите их выше строк, автоматически добавленных скриптом установки.if [ -f $(brew --prefix)/etc/zsh_completion ]; then . $(brew --prefix)/etc/zsh_completion fi
-
Перезапустите командную оболочку.
Для Windows CLI можно установить с помощью PowerShell и cmd
:
-
Для установки с помощью 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 можно пользоваться, командную оболочку перезапускать не нужно.
-
-
Для установки с помощью
cmd
:-
Выполните команду:
@"%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
. -
Перезапустите командную оболочку, чтобы перезагрузить переменные окружения.
-
Создание профиля
Если вы еще не подключены к консоли управления, войдите в консоль и примите пользовательское соглашение (нажмите Войти).
Чтобы аутентифицироваться от имени пользователя:
-
Получите OAuth-токен в сервисе Яндекс.OAuth. Для этого перейдите по ссылке и нажмите Разрешить.
-
Запустите команду
yc init
, чтобы выполнить настройку вашего профиля CLI. -
По запросу команды введите свой 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: AaAaBbBbCcCcDdDdEeEeFfFfGgGg
-
Выберите одно из предложенных облаков, в которых у вас есть права доступа:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvatao4frg22b) [2] cloud2 (id = dcvatao4faoe2bmrg22b) Please enter your numeric choice: 2
Если вам доступно только одно облако, оно будет выбрано автоматически.
-
Выберите каталог по умолчанию:
Please choose a folder to use: [1] folder1 (id = cvatao4faoe2bmdrg22b) [2] folder2 (id = tao4faoe2cvabmdrg22b) [3] Create a new folder Please enter your numeric choice: 1
-
Выберите зону доступности по умолчанию для сервиса Yandex Compute Cloud:
Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] 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] Don't set default zone Please enter your numeric choice: 2
-
Проверьте настройки вашего профиля CLI:
yc config list
Перед началом работы подготовьте сервисный аккаунт:
- Аутентифицируйтесь в CLI как пользователь.
- Если у вас еще нет сервисного аккаунта, создайте его и настройте права доступа для него.
Чтобы аутентифицироваться от имени сервисного аккаунта:
-
Получите список сервисных аккаунтов, которые существуют в вашем облаке:
yc iam service-account --folder-id <ID каталога> list +----------------------+------------+ | ID | NAME | +----------------------+------------+ | aje3932acd0c5ur7dagp | default-sa | +----------------------+------------+
-
Создайте авторизованный ключ для сервисного аккаунта и сохраните его в файл
key.json
:yc iam key create --service-account-name default-sa --output key.json id: aje83v701b1un777sh40 service_account_id: aje3932acd0c5ur7dagp created_at: "2019-08-26T12:31:25Z" key_algorithm: RSA_2048
-
Добавьте авторизованный ключ сервисного аккаунта в профиль CLI.
-
Создайте новый профиль CLI:
yc config profile create sa-profile
-
Добавьте авторизованный ключ:
yc config set service-account-key key.json
-
-
Проверьте, что параметры для сервисного аккаунта добавлены верно:
yc config list service-account-key: id: aje83v701b1un777sh40 service_account_id: aje3932acd0c5ur7dagp created_at: "2019-08-26T12:31:25Z" key_algorithm: RSA_2048 public_key: | -----BEGIN PUBLIC KEY----- MIIBIjANBg... -----END PUBLIC KEY----- private_key: | -----BEGIN PRIVATE KEY----- MIIEvwIBAD... -----END PRIVATE KEY-----
-
Настройте профиль для запуска команд.
Для некоторых команд требуется указание уникального идентификатора облака и каталога. Вы можете указать информацию о них в профиле или запускать такие команды с соответствующим флагом.
-
Укажите облако в профиле:
yc config set cloud-id <ID облака>
Или запускайте команды с параметром
--cloud-id
. -
Укажите каталог в профиле:
yc config set folder-id <ID каталога>
Или запускайте команды с параметром
--folder-id
.
Все операции в этом профиле будут выполняться от имени привязанного сервисного аккаунта. Вы можете изменить параметры профиля или сменить его.
-
Чтобы аутентифицироваться с помощью SAML-совместимой федерации удостоверений:
-
Узнайте идентификатор федерации у вашего администратора.
-
Запустите интерактивное создание профиля:
yc init --federation-id=<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 'aje1f0hsgds3aas2f6ai2'. Your federation authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.cloud.yandex.ru'. Press 'enter' to continue...
После успешной аутентификации на сервере федерации в профиле сохранится IAM-токен. При каждой операции аутентификация будет происходить с помощью этого токена, пока не истечет время жизни токена. После этого CLI снова выведет сообщение о необходимости пройти аутентификацию в браузере.
-
Вернитесь в интерфейс командной строки, чтобы завершить создание профиля.
-
Выберите одно из предложенных облаков, в которых у вас есть права доступа:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvatao4frg22b) [2] cloud2 (id = dcvatao4faoe2bmrg22b) Please enter your numeric choice: 2
Если вам доступно только одно облако, оно будет выбрано автоматически.
-
Выберите каталог по умолчанию:
Please choose a folder to use: [1] folder1 (id = cvatao4faoe2bmdrg22b) [2] folder2 (id = tao4faoe2cvabmdrg22b) [3] Create a new folder Please enter your numeric choice: 1
-
Выберите зону доступности по умолчанию для сервиса Yandex Compute Cloud:
Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] 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] Don't set default zone Please enter your numeric choice: 2
-
Проверьте настройки вашего профиля CLI:
yc config list federation-id: aje1f0hs6ojais2f6ai2 ...
Примеры команд
Ниже описана последовательность действий для создания облачной сети, подсети и виртуальной машины, подключенной к этой подсети.
- Посмотрите описание команд 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-b \ --zone ru-central1-b \ --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 | +----------------------+------------------+-------------------------+ | skesdqhkc6449hbqqar1 | my-ui-network | my first network via ui | | c6449hbqqar1skesdqhk | my-yc-network | my first network via yc | +----------------------+------------------+-------------------------+
yc vpc network list --format yaml - id: skesdqhkc6449hbqqar1 folder_id: ijkl9012 created_at: "2018-09-05T09:51:16Z" name: my-ui-network description: "my first network via ui" labels: {} - id: c6449hbqqar1skesdqhk 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-b
:- Подготовьте пару ключей (открытый и закрытый) для SSH-доступа на виртуальную машину.
- Создайте виртуальную машину Linux:
yc compute instance create \ --name my-yc-instance \ --network-interface subnet-name=my-yc-subnet-b,nat-ip-version=ipv4 \ --zone ru-central1-b \ --ssh-key ~/.ssh/id_rsa.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
- Узнайте публичный IP-адрес виртуальной машины. Для этого посмотрите подробную информацию о вашей виртуальной машине:
- Удалите виртуальную машину
my-yc-instance
, подсетьmy-yc-subnet-b
и сетьmy-yc-network
:yc compute instance delete my-yc-instance yc vpc subnet delete my-yc-subnet-b yc vpc network delete my-yc-network