Почему эта команда входа в az завершается с ошибкой в Gitlab CI?

#azure #gitlab #gitlab-ci #azure-cli

#azure #gitlab #gitlab-ci #azure-cli

Вопрос:

Я пытаюсь запустить задачу в GitLab CI, используя официальный образ докера MS Azure-CLI. На первом шаге происходит сбой при входе в систему с помощью команды «az login». Я использую логин участника службы с секретом, все они хранятся как переменные GitLab CI. Использование этой команды с заданием CI:

az login --service-principal --username="${AZURE_APP_ID}" --password="${AZURE_CLIENT_SECRET}" --tenant=${AZURE_TENANT_ID}

выдает ошибку:

usage error: --service-principal --username NAME --password SECRET --tenant TENANT

Тем не менее, если я запускаю образ Azure-CLI docker локально и выполняю ту же самую команду, она работает нормально. Почему это не работает? Какой формат мне нужно использовать, чтобы заставить эту чертову штуку работать?

Комментарии:

1. Сначала проверьте, установлен ли Azure-CLI в контейнере. Во-вторых, проверьте, установлены ли переменные.

2. Это официальный образ контейнера CLI Microsoft Azure, конечно, он установлен. Переменные еще не заданы в изображении, они передаются через GitLab CI.

3. Можете ли вы поделиться скриншотом ошибки и кодом задачи?

4. @Matt Вы можете проверить доступ к этим переменным из конвейера CI?

5. @CharlesXu: azure-cli должен быть установлен, поскольку указанная ошибка — это ошибка, которую вернет azure-cli

Ответ №1:

Отладка с использованием стиля разработки, основанного на печати.

Перед az login строкой повторите все переменные, чтобы увидеть, имеют ли они правильные значения.

Я мог воспроизвести ошибку, которую вы указали, только в одном случае, когда командная строка содержала только это: az login --service-principal

Если предоставлены еще какие-либо аргументы или мусор, ошибка будет другой. Вы должны проверить, выполняет ли Gitlab CI даже те команды, которые, по вашему мнению, он должен выполнить.