Comme beaucoup d’utilisateurs, j’ai longtemps privilégié les interfaces graphiques et web pour gérer mes services. Mais au fil de ma formation en administration système, j’ai découvert que PowerShell pouvait être un outil à la fois puissant et pratique. Et surtout, qu’il n’est pas nécessaire d’en maîtriser tous les aspects pour commencer à en tirer parti.
Lorsqu'on se connecte sur https://portal.azure.com, il est possible d’utiliser le Cloud Shell pour exécuter des commandes, comme afficher toutes les machines virtuelles avec leurs adresses IP publiques et privées, le tout au format tableau. Très pratique pour avoir une vue rapide et claire de son infrastructure.
À partir de là, je me suis posé la question : est-ce qu’il serait possible de connecter directement mon PowerShell local à Azure ? L’idée étant de pouvoir exploiter une petite bibliothèque de scripts enregistrés sur mon poste pour m’assister dans l’administration quotidienne sur Azure.
La bonne nouvelle, c’est que oui : c’est tout à fait possible, et en plus, c’est plutôt simple à mettre en place.
Il suffit simplement d’ouvrir une fenêtre PowerShell en tant qu’administrateur, puis d’exécuter la commande suivante :
winget install --exact --id Microsoft.AzureCLI
Accepter l’installation lorsque cela est proposé. Fermer la fenêtre PowerShell une fois celle-ci terminée, puis la rouvrir afin que les modifications soient prises en compte. Ensuite on se connecte à notre compte Azure en exécutant la commande suivante :
az login
Cela ouvrira une fenêtre de navigateur pour taper les identifiants Azure. Une fois connecté, il n'y a plus qu'à exécuter des commandes Azure dans le terminal PowerShell.
Par exemple, pour afficher les adresses IP (publiques et privées) de toutes vos machines virtuelles dans un format lisible, il suffit de lancer :
az vm list-ip-addresses --output table
Ou afficher les machines virtuelles d'un groupe de ressource spécifique
az vm list-ip-addresses --resource-group <resourcGroup> --output table
Ou encore d'une machine virtuelle spécifique
az vm list-ip-addresses --name <VmName> --output table