Getting started with the command line interface
The Yandex Cloud command line interface (CLI) is downloadable software you can use to manage your cloud resources via the command line.
Installation
This section provides a guide for interactive CLI installation using a script that:
- Identifies your OS and architecture.
- Downloads the executable with the latest stable CLI version for your environment.
- Performs a health check.
- Adds the CLI to the
PATHenvironment variable. - Generates autocompletion settings.
Tip
To manually set up the CLI installation directory, autocompletion, and shell startup script, and add the CLI to the PATH environment variable, use the non-interactive CLI installation script.
You can also manually download and install the executable with the latest stable CLI version. For more information, see Installation without using a script.
-
Run this command:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bashThe script will install the CLI and add the executable file path to the
PATHenvironment variable.Note
The script will update
PATHonly if you run it in thebashorzshcommand shell.If you run the script in a different shell, add the CLI path to the
PATHvariable yourself.Warning
For autocompletion to work correctly when using
zsh, you need the shell version 5.1 or higher. If usingbashon CentOS and derivative distributions, install thebash-completionpackage. -
After installation is complete, restart your terminal.
-
Run this command:
curl -sSL https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bashThe script will install the CLI and add the executable file path to the
PATHenvironment variable. -
Restart your terminal for the changes to take effect.
The CLI supports command autocompletion for the bash and zsh command shells. To enable autocompletion:
-
Install the Homebrew
package manager. -
Install the
zsh-completionpackage:Warning
If you installed bash instead of zsh or have macOS Mojave 10.14 or earlier with bash as the default shell, use the
bash-completionpackage instead ofzsh-completionand the~/.bash_profileconfiguration file instead of~/.zshrcat the current and next step.brew install zsh-completionThe installation script will update the
~/.zshrcconfiguration file:# 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 -
After the installation is complete, add the following lines to the
~/.zshrcconfiguration file. Insert them above the lines automatically added by the installation script.if [ -f $(brew --prefix)/etc/zsh_completion ]; then . $(brew --prefix)/etc/zsh_completion fi -
Restart your terminal.
For Windows, you can install the CLI using PowerShell or command line:
-
To install using PowerShell:
-
Run this command:
iex (New-Object System.Net.WebClient).DownloadString('https://storage.yandexcloud.net/yandexcloud-yc/install.ps1') -
The installation script will ask whether to add the path to
ycto the PATH variable:Add yc installation dir to your PATH? [Y/n] -
Enter
Y. After this, you can use the Yandex Cloud CLI without restarting the command shell.
-
-
To install using the command line:
-
Run this command:
@"%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" -
The installation script will ask whether to add the path to
ycto the PATH variable:Add yc installation dir to your PATH? [Y/n] -
Enter
Y. -
Restart your terminal for the changes to take effect.
-
If you get an error during CLI installation, see CLI troubleshooting.
Creating a profile
To get authenticated using a Yandex account:
-
Get your email address:
- Navigate to your Yandex
account. - Copy your email address from the Contacts section.
- Navigate to your Yandex
-
Launch the profile creation wizard:
yc init --username=<email_address> -
Select the profile you want to set up authentication for or create a new one.
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 -
The CLI prompts you to continue authentication in the browser. Press Enter to continue.
You are going to be authenticated via username '<email_address>'. Authentication web site will be opened. After your successful authentication, you will be redirected to 'https://console.yandex.cloud'. Press 'enter' to continue...On successful authentication, an IAM token will be saved in the profile. This IAM token will be used to authenticate each operation until the end of the token's lifetime (not more than 12 hours). After that, the CLI will once again prompt you to authenticate in the browser.
To extend the period during which you do not have to authenticate in the browser, use refresh tokens, which allow you to reissue IAM tokens without entering the browser. Do it by enabling refresh tokens at the organization level and initializing DPoP protection in the CLI.
-
Go back to the command line interface to finish creating the profile.
-
Select one of the clouds from the list of those you have access to:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2If there is only one cloud available, it will be selected automatically.
-
Select the default folder:
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 -
To select the default availability zone for Compute Cloud, type
Y. To skip the setup, typen.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] YIf you typed
Y, select the availability zone: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 -
View your CLI profile settings:
yc config listResult:
subject-id: b1g159pa15cd******** username: <email_address> folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
To authenticate using a SAML-compatible identity federation:
-
Get your federation ID from your administrator.
-
Launch the profile creation wizard:
yc init --federation-id=<federation_ID> -
Select the profile you want to set up authentication for or create a new one.
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 -
The CLI prompts you to continue authentication in the browser. Press Enter to continue.
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...On successful authentication, an IAM token will be saved in the profile. This IAM token will be used to authenticate each operation until the end of the token's lifetime (not more than 12 hours). After that, the CLI will once again prompt you to authenticate in the browser.
To extend the period during which you do not have to authenticate in the browser, use refresh tokens, which allow you to reissue IAM tokens without entering the browser. Do it by enabling refresh tokens at the organization level and initializing DPoP protection in the CLI.
-
Go back to the command line interface to finish creating the profile.
-
Select one of the clouds from the list of those you have access to:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2If there is only one cloud available, it will be selected automatically.
-
Select the default folder:
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 -
To select the default availability zone for Compute Cloud, type
Y. To skip the setup, typen.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] YIf you typed
Y, select the availability zone: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 -
View your CLI profile settings:
yc config listResult:
federation-id: aje1f0hs6oja******** subject-id: ajea53egl28l******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
To authenticate using a local user account:
-
Launch the profile creation wizard:
User poolEmail-
Get your user pool ID from your administrator.
-
Launch the profile creation wizard:
yc init --userpool-id=<user_pool_ID>
-
Get your email address:
- Go to the My account
portal. - In the left-hand panel, select
Profile. - Copy the email address from the Contacts section.
- Go to the My account
-
Launch the profile creation wizard:
yc init --username=<email_address>
-
-
Select the profile you want to set up authentication for or create a new one.
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 -
The CLI prompts you to continue authentication in the browser. Press Enter to continue.
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...On successful authentication, an IAM token will be saved in the profile. This IAM token will be used to authenticate each operation until the end of the token's lifetime (not more than 12 hours). After that, the CLI will once again prompt you to authenticate in the browser.
To extend the period during which you do not have to authenticate in the browser, use refresh tokens, which allow you to reissue IAM tokens without entering the browser. Do it by enabling refresh tokens at the organization level and initializing DPoP protection in the CLI.
-
Go back to the command line interface to finish creating the profile.
-
Select one of the clouds from the list of those you have access to:
Please select cloud to use: [1] cloud1 (id = aoe2bmdcvata********) [2] cloud2 (id = dcvatao4faoe********) Please enter your numeric choice: 2If there is only one cloud available, it will be selected automatically.
-
Select the default folder:
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 -
To select the default availability zone for Compute Cloud, type
Y. To skip the setup, typen.Do you want to configure a default Yandex Compute Cloud availability zone? [Y/n] YIf you typed
Y, select the availability zone: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 -
View your CLI profile settings:
yc config listResult:
User poolEmailuserpool-id: ek0auknfc0mh******** subject-id: ek00cd1m8hdd8******** cloud-id: b1g159pa15cd******** folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-bsubject-id: b1g159pa15cd******** username: <email_address> folder-id: b1g8o9jbt58******** compute-default-zone: ru-central1-b
Examples of commands
See below for how to create a cloud network, a subnet, and a VM connected to that subnet.
-
View the description of the CLI commands for working with cloud networks:
yc vpc network --help -
Create a cloud network in the folder specified in your CLI profile:
yc vpc network create \ --name my-yc-network \ --labels my-label=my-value \ --description "my first network via yc" -
In the
my-yc-networkcloud network, create a subnet: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" -
Get a list of all cloud networks in the directory specified in your CLI profile:
yc vpc network listResult:
+----------------------+------------------+-------------------------+ | ID | NAME | DESCRIPTION | +----------------------+------------------+-------------------------+ | skesdqhkc644******** | my-ui-network | my first network via ui | | c6449hbqqar1******** | my-yc-network | my first network via yc | +----------------------+------------------+-------------------------+Get the same list with more details in YAML format:
yc vpc network list --format yamlResult:
- 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 -
Create a VM and connect it to
my-yc-subnet-a:-
Create a key pair (public and private keys) for SSH access to the VM.
-
Create a Linux VM:
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.pubWhere
ssh-keyis the path to a public key for SSH access. The VM will automatically create theyc-useruser with the specified public key.
-
-
Connect to the VM over SSH:
-
Learn the public IP address of the VM. To do this, view detailed information about your VM:
yc compute instance get my-yc-instanceIn the command output, find the address of the VM in the
one_to_one_natsection:one_to_one_nat: address: 130.193.32.90 ip_version: IPV4 -
Connect to the VM over SSH as
yc-user, using the private key:ssh yc-user@130.193.32.90
-
-
Delete the
my-yc-instanceVM,my-yc-subnet-asubnet, andmy-yc-networknetwork:yc compute instance delete my-yc-instance yc vpc subnet delete my-yc-subnet-a yc vpc network delete my-yc-network