web-dev-qa-db-ja.com

Git BashのAzure CLI

Windowsでbash(sh)スクリプトを使用して、テスト展開を実行しようとしています。私はgitbashコンソールからスクリプトを実行しているので、bashのコピーを手に入れることができますが、そうすることは、Azureクライアントが利用できないことを意味します(つまり、Azureコマンドが見つかりません)。誰かがGitBashでAzure cliを動作させる方法を知っていますか(別の場所にインストールすることを前提としています)、またはbashを使用する別の方法に変更する必要があります

23

Windowsのコマンドgit bashには、.cmdを追加する必要がある場合があります。また、Azure-Cliをインストールする別の方法は、Chocolatey https://chocolatey.org/ を使用することです。

Azure-Cliのインストール後にこのコマンドを試してください。

az.cmd --version

エコー mscrivo CMDで以下の行を実行できますPowerShellではありません(昇格/管理者)

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
35
whindes

artberriはコメントで最良の解決策を指摘しました。

以下を_%USERPROFILE%\.bashrc_または_%USERPROFILE%\.profile_に追加します

_alias az='az.cmd'_

ただし、bashスクリプトでazを使用できるようにするには、もう少し抜本的なものが必要になります。cmdプロンプトから次を実行します。

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"

それは基本的に、どこからでも実行でき、パラメーターをaz.cmdに渡すことができるパススルーazコマンドをwindowsフォルダーに作成します。

17
mscrivo

CLIをコンピューターにインストールする必要があります。それには複数の方法があります。

私はNodeJSの友人なので、インストールにnpmを使用します。

npm install -g Azure-cli

詳細はこちら: https://www.npmjs.com/package/Azure-cli

ただし、他の方法でも実行できます。非常に良い方法は、Dockerを使用することです。 Azure CLIのプレインストールバージョンを備えたMicrosoftのコンテナーがあります。

docker run -it --name Azure Microsoft/Azure-cli

Ubuntu bashを使用するWindows 10では、次を使用できます。

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 enthusiast run

pip install --user Azure-cli

最も重要なのは、パス変数を介して「az」/「az.bat」または「Azure」ビンが利用できることです。

3
blndev

つまり、Azure CLI for WindowsはGit Bash for Windowsと互換性がありません

https://github.com/Azure/azure-cli/issues/3445

1
citleon

@mscrivoのソリューションを試しました。ただし、シェルスクリプトでazコマンドを使用する場合、パス内のスペースが原因でまだ問題があります。そのため、%SYSTEMROOT%にazproxy.cmdを作成しました。

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

そして、そのファイルへのmklinkを作成します

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

PS%SYSTEMROOT%の展開された値には、もちろんスペースを含めないでください

0
Nelis