web-dev-qa-db-fra.com

Azure CLI dans Git Bash

J'essaie d'utiliser un script bash (sh) sur Windows pour exécuter un déploiement de test. J'exécute le script à partir de la console gitbash afin d'avoir une copie de bash, mais cela signifie que le fichier Azure n'est pas disponible (c'est-à-dire que la commande Azure est introuvable). Est-ce que quelqu'un sait comment je peux faire fonctionner l'Azure cli dans GitBash (je suppose que je viens de l'installer ailleurs) ou dois-je changer de manière différente d'utiliser bash 

13
Pectus Excavatum

Parfois, les commandes dans Windows git bash nécessitent l’ajout de .cmd. Aussi, une autre façon d’installer Azure-Cli est de Chocolatey https://chocolatey.org/

Essayez cette commande après l’installation d’Azure-Cli:

az.cmd --version

En écho mscrivo vous pouvez exécuter la ligne ci-dessous dans Git bash (elevated/admin)

ln -s "C:\Program Files (x86)\Microsoft SDKs"/Azure/CLI2/wbin/az.cmd "$SYSTEMROOT\az" 

Vous devriez maintenant pouvoir exécuter:

az --version
15
whindes

La configuration d'un alias bash sur az.cmd dans votre .profile ou .bashrc fonctionne si vous avez juste besoin d'exécuter az dans un shell bash interactif. 

Toutefois, si vous souhaitez utiliser la commande az à partir de scripts bash, l'alias ne fonctionnera pas. Ce que j’ai décidé, c’est de créer un lien symbolique vers az.cmd quelque part dans votre chemin, par exemple:

mklink "%SYSTEMROOT%\az" "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin\az.cmd"
11
mscrivo

Vous devez installer le CLI sur votre ordinateur . Il y a plusieurs façons de le faire.

Je suis un ami de NodeJS et j'utilise npm pour l'installation:

npm install -g Azure-cli

Plus de détails ici: https://www.npmjs.com/package/Azure-cli

Mais vous pouvez le faire aussi d'autres manières. Une façon très agréable est d'utiliser Docker. Il existe des conteneurs de Microsoft avec une version préinstallée d’Azure CLI.

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

Sous Windows 10 avec Ubuntu Bash, vous pouvez utiliser:

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

Ou comme un passionné de python

pip install --user Azure-cli

Le plus important est que le bac "az"/"az.bat" ou "Azure" soit disponible via votre variable de chemin.

3
blndev

En d'autres termes, Azure CLI pour Windows n'est pas compatible avec Git Bash pour Windows.

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

2
citleon

N'utilisez pas du tout le programme d'installation MSI. Etant donné que la CLI Azure est implémentée en Python, utilisez la méthode d’installation Python telle que l’a écrit @blndev. De cette façon, au lieu de az.cmd, vous obtenez le script shell az.bat et az, et le chemin d'installation ne contiendra pas d'espaces.

pip install --user Azure-cli

Des informations plus détaillées sur cette méthode sont disponibles à l’adresse https://blogs.msdn.Microsoft.com/brijrajsingh/2017/03/02/installing-Azure-cli-2-0-on-windows/

Le lien symbolique a fonctionné pour moi la plupart du temps, mais certaines commandes échouent toujours, par exemple.

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

J'ai essayé la solution de @ mscrivo. Lorsque vous utilisez la commande az dans un script Shell, vous rencontrez toujours des problèmes en raison des espaces dans le chemin . J'ai donc créé un fichier azproxy.cmd dans% SYSTEMROOT% contenant

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

Et puis créez le mklink vers ce fichier

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

PS la valeur étendue de% SYSTEMROOT% ne doit pas contenir d'espaces bien sûr

0
Nelis