Решение проблем с Yandex Cloud CLI
- Проблемы при установке CLI
- Проблемы при работе с CLI
- Пример сообщения об ошибке
- Как получить подробную информацию об ошибке операции?
- Как обратиться в службу технической поддержки?
- Ресурс не найден при обращении по имени
- Как пользоваться CLI через прокси-сервер?
- Недействительный токен
- Ошибка при аутентификации на сервере без графического интерфейса и браузера
Проблемы при установке CLI
В PowerShell запрещено выполнение скриптов
Если PowerShell сообщает, что выполнение скриптов запрещено, проверьте действующие политики выполнения с помощью команды Get-ExecutionPolicy -List. Изменяйте политики только в том случае, если это разрешено правилами безопасности вашей организации. Если политика задана администратором или запуск скриптов запрещен, установите CLI без использования скрипта.
Подробнее о политиках выполнения PowerShell читайте в документации Microsoft
Нет доступа к https://storage.yandexcloud.net
Вы можете самостоятельно скачать архив с исполняемым файлом CLI и установить его.
Например, это может быть полезно, если на целевом устройстве нет доступа к https://storage.yandexcloud.net. Скачайте архив с исполняемым файлом CLI на другом устройстве, а затем перенесите архив на целевое устройство разрешенным в вашей организации способом.
Failure writing output to destination
Если утилита curl в ОС Linux Ubuntu была установлена с помощью snap-пакетаcurl: (23) Failure writing output to destination.
Чтобы исправить эту ошибку, удалите утилиту curl и повторно установите ее с помощью менеджера пакетовapt:
sudo snap remove curl
sudo apt install curl
Затем повторите установку CLI.
Команда yc не найдена в Linux или macOS
Если после установки CLI возникает ошибка yc: command not found, перезапустите командную оболочку или выполните команду:
exec -l $SHELL
Если ошибка сохраняется:
-
Убедитесь, что исполняемый файл CLI установлен:
ls -l "$HOME/yandex-cloud/bin/yc"Если файла нет, повторите установку CLI.
-
Добавьте путь к исполняемому файлу в переменную окружения
PATHдля текущей сессии и проверьте работу CLI:source "$HOME/yandex-cloud/path.bash.inc" yc version -
Чтобы путь добавлялся в новых сессиях автоматически, убедитесь, что в файле
~/.zshrc,~/.bashrcили~/.bash_profile, соответствующем вашей командной оболочке, есть строка:if [ -f "$HOME/yandex-cloud/path.bash.inc" ]; then source "$HOME/yandex-cloud/path.bash.inc"; fi
Ошибка command not found: compdef
Ошибка command not found: compdef возникает, если автодополнение CLI загружается до инициализации системы автодополнения zsh.
Добавьте следующие строки в файл ~/.zshrc перед строкой, которая подключает файл completion.zsh.inc:
autoload -Uz compinit
compinit
Затем перезапустите командную оболочку или выполните команду exec -l $SHELL. Подробнее о настройке автодополнения читайте в разделе Включить автодополнение.
Проблемы при работе с CLI
Если во время выполнения операции возникла ошибка, CLI отобразит соответствующее сообщение.
Пример сообщения об ошибке
yc compute instance create \
--name my-inst3 \
--metadata user-data="#ps1\nnet user Administrator Passw0rd" \
--zone kz1-a \
--public-ip \
--create-boot-disk image-folder-id=standard-images,image-name=windows-2016-gvlk-153
ERROR: rpc error: code = ResourceExhausted desc = The limit on maximum number of instances has exceeded.
server-request-id: 9d42710c-4a14-4561-a491-1f3bf76dbaaa
client-request-id: e69f4463-b9de-45bc-89b3-4db6e4d1bae6
client-trace-id: ddd8c763-81a3-4c58-9a7d-445257b59aee
Use server-request-id, client-request-id, client-trace-id for investigation of issues in cloud support
If you are going to ask for help of cloud support, please send the following trace file: C:\Users\username\yandex-cloud\logs\yc_compute_instance_create-2019-02-18T12-26-39.897.txt
Как получить подробную информацию об ошибке операции?
Если CLI вывел идентификатор операции, запросите сведения о ней:
yc operation get <идентификатор_операции>
Сведения об операции могут содержать более подробное описание причины ошибки.
Как обратиться в службу технической поддержки?
Чтобы помочь нашим специалистам быстрее решить вашу проблему, из сообщения об ошибке:
-
Скопируйте все доступные идентификаторы. В данном примере это
server-request-id,client-request-idиclient-trace-id. -
Скопируйте файл с логами, который сохранился на вашем ПК. Путь к логам указан в конце сообщения об ошибке.
В данном примере это:C:\Users\username\yandex-cloud\logs\yc_compute_instance_create-2019-02-18T12-26-39.897.txt -
Обратитесь с этой информацией в службу технической поддержки
.
Ресурс не найден при обращении по имени
Если при обращении к ресурсу по имени возникает ошибка:
ERROR: ... not found
или
ERROR: rpc error: code = NotFound ...
Скорее всего, ресурс находится не в каталоге по умолчанию текущего профиля CLI.
Чтобы решить проблему, укажите каталог явно с помощью параметра --folder-id или --folder-name:
yc <сервис> <ресурс> get <имя_ресурса> --folder-id <идентификатор_каталога>
Пример для виртуальной машины:
yc compute instance get my-vm --folder-id b1g5bhjofg7o********
Если вы работаете с этим каталогом постоянно, сделайте его каталогом по умолчанию:
yc config set folder-id <идентификатор_каталога>
Если вы используете идентификатор ресурса, указывать каталог не нужно — идентификаторы уникальны.
Как пользоваться CLI через прокси-сервер?
Если доступ к Yandex Cloud в вашей организации осуществляется через прокси-сервер, перед выполнением команды yc init настройте подключение CLI к прокси-серверу.
Недействительный токен
При выполнении команды CLI может возникать ошибка о недействительности токена, например:
ERROR: Unable to list clouds: rpc error: code = Unauthenticated desc = UNAUTHENTICATED: The token is invalid
Независимо от типа профиля CLI аутентификация в Yandex Cloud выполняется с помощью IAM-токена. CLI получает его следующими способами:
- из браузера;
- в обмен на авторизованный ключ;
- напрямую из переменной окружения
YC_IAM_TOKEN.
Ошибка свидетельствует о том, что IAM-токен недействителен. Например, мог истечь срок его действия, или токен был отозван.
Повторно аутентифицируйтесь в CLI.
Учитывайте также, что передача IAM-токена в переменную окружения export YC_IAM_TOKEN=<значение_IAM-токена> переопределяет аутентификационные параметры, заданные при других типах аутентификации.
Ошибка при аутентификации на сервере без графического интерфейса и браузера
В случае отсутствия на сервере графического интерфейса и браузера возникает ошибка:
ERROR: fill default credentials: federation id authentication is not supported on this system because the browser can not be opened
Аутентифицируйтесь сервисным аккаунтом. Также вы можете использовать SSH-туннель или форвардинг X11.