Azure CLI в Git Bash

Я пытаюсь использовать bash (sh) script в Windows для запуска тестового развертывания. Я запускаю script из консоли gitbash, чтобы у меня была копия bash, но это означает, что лазурный клик недоступен (т.е. Команда azure не найдена). Кто-нибудь знает, как я могу заставить Azure cli работать в GitBash (я предполагаю, что я просто установил его где-то еще), или мне нужно изменить другой способ использования bash

Ответ 1

Иногда команды в windows git bash требуют добавления .cmd. Кроме того, еще один способ установки Azure-Cli - через Chocolatey https://chocolatey.org/

Попробуйте эту команду после установки Azure-Cli:

az.cmd --version

Повторяя mscrivo, вы можете запустить строку ниже в CMD, а не в PowerShell (повышен /admin)

echo "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} > "C:\Program Files\Git\mingw64\bin\az" 

Теперь вы должны иметь возможность работать в Git bash:

az --version

Ответ 2

artberri отметил лучшее решение в комментарии:

Добавьте следующее к %USERPROFILE%\.bashrc или %USERPROFILE%\.profile

alias az='az.cmd'

Однако, если вы хотите использовать az в скриптах bash, вам понадобится что-то более радикальное, запустите следующее из командной строки:

echo "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} ${11} ${12} ${13} ${14} ${15} > "%SYSTEMROOT%\az"

По сути, это создаст команду passthrough az в папке Windows, которую можно запустить из любого места и передать параметры в az.cmd.

Ответ 3

Вам нужно установить CLI на свой компьютер. Существует несколько способов сделать это.

Я друг NodeJS, поэтому я использую npm для установки:

npm install -g azure-cli

Подробнее здесь: https://www.npmjs.com/package/azure-cli

Но вы можете сделать это и другими способами. Очень хороший способ - использовать докер. Существуют контейнеры от Microsoft с предустановленной версией Azure CLI.

docker run -it --name azure microsoft/azure-cli

В Windows 10 с помощью ubuntu bash вы можете использовать:

echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | \
     sudo tee /etc/apt/sources.list.d/azure-cli.list

sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 417A0893
sudo apt-get install apt-transport-https
sudo apt-get update && sudo apt-get install azure-cli

Или как энтузиаст python запускать

pip install --user azure-cli

Самое главное, что через переменную пути доступен "az" / "az.bat" или "azure" bin.

Ответ 5

Не используйте MSI установщик вообще. Поскольку интерфейс командной строки Azure реализован на Python, используйте метод установки Python, как писал @blndev. Таким образом, вместо az.cmd вы получаете az.bat оболочки az.bat и az, а путь установки не будет содержать пробелов.

pip install --user azure-cli

Более подробную информацию об этом методе можно найти по адресу https://blogs.msdn.microsoft.com/brijrajsingh/2017/03/02/install-azure-cli-2-0-on-windows/

Символьная ссылка работала для меня большую часть времени, но некоторые команды все еще терпят неудачу, например

az dls fs access set-entry ...
'C:\Program' is not recognized as an internal or external command, operable program or batch file

Ответ 6

Я попробовал решение @mscrivo. Однако при использовании команды az в сценарии оболочки у вас по-прежнему возникают проблемы из-за пробелов в пути. Для этого я создал файл azproxy.cmd в% SYSTEMROOT%, содержащий

@echo off
"C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd" %*

А затем создать ссылку на этот файл

mklink "%SYSTEMROOT%\az" "SYSTEMROOT%\azproxy.cmd"

PS расширенное значение% SYSTEMROOT% не должно содержать пробелов, конечно