Introduction à la ligne de commande Azure pour Mac et Linux

Sous Windows on utilise en priorité PowerShell pour scripter nos manipulations de Windows Azure. Mais n’oublions pas nos amis admins dont le système quotidien est Mac OS ou Linux : il y a aussi une ligne de commande pour eux. J’ai pour le moment juste commencé à tester la chose et voici comment cela se passe.

Je suis parti sur une VM de Ubuntu 13.04 Desktop 64 bits que j’avais sous la main, et de la page de téléchargement :

https://www.windowsazure.com/en-us/downloads/

J’ai vite compris qu’il était inutile de télécharger les sources de l’outil en question, mais qu’il était préférable de lire la doc :

image

Doc présente ici : https://www.windowsazure.com/en-us/manage/linux/how-to-guides/command-line-tools/

J’ai appris à mes dépens que l’outil Azure pour Linux nécessite une version de Node.js plus récente que celle que l’on peut installer depuis les packages officiels d’Ubuntu. Il faut donc utiliser un package plus récent. Sur les conseils de la documentation d’Azure, je me suis donc tourné vers cette page :

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

Suivant ses instruction, j’ai donc exécuté ces commandes, consistant à déclarer une nouvelle source de packages Ubuntu et à récupérer Node.js sur celle-ci :

 sudo apt-get update
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Une fois Node.js et npm installés, il suffit d’installer azure-cli :

 sudo npm install azure-cli -g

Et voilà !

Pour vérifier l’installation, lancer simplement la commande azure :

Screenshot from 2013-07-12 172240

La liste des commandes possibles est affichée.

Reste ensuite, comme pour PowerShell, à récupérer un certificat pour s’authentifier sur notre abonnement Azure. Cela se fait en deux étapes, selon la méthode “Certificat généré par Azure” de l’article précédent pour PowerShell.

  • Exécuter la commande : azure account download. Ou, ouvrir directement la page https://go.microsoft.com/fwlink/?LinkId=254432 dans le navigateur et télécharger le package (.publishsettings) [au passage, c’est ici que l’on s’authentifie].
  • Importer le package avec la commande : azure account import <fichier.publishsettings> .

Ce qui donne dans mon exemple :

 pascal@ubuntu:~$ azure account download
info:    Executing command account download
info:    Launching browser to https://go.microsoft.com/fwlink/?LinkId=254432
help:    Save the downloaded file, then execute the command
help:      account import 
info:    account download command OK

pascal@ubuntu:~$ azure account import Downloads/Windows\ Azure\ Internal\ Consum
ption-7-12-2013-credentials.publishsettings 
info:    Executing command account import
info:    Found subscription: Windows Azure Internal Consumption
info:    Setting default subscription to: Windows Azure Internal Consumption
info:    Use "azure account set" to change to a different one.
info:    Setting service endpoint to: https://management.core.windows.net/
warn:    The 'Downloads/Windows Azure Internal Consumption-7-12-2013-credentials
.publishsettings' file contains sensitive information.
warn:    Remember to delete it now that it has been imported.
info:    Account publish settings imported successfully
+ Verifying account                                                            
info:    account import command OK

Remarquez que le système est sympathique au point de nous rappeler qu’il serait bon de se débarasser du fichier .publishsettings une fois qu’il a servi. Finalement, il ne nous reste qu’à tester la configuration Azure, par exemple en listant les VM présentes grâce à la commande azure VM list :

 pascal@ubuntu:~$ azure vm list
info:    Executing command vm list
+ Fetching VMs                                                                 
data:    DNS Name                      VM Name          Status   
data:    ----------------------------  ---------------  ---------
data:    pascals-win1.cloudapp.net     pascals-win1     ReadyRole
data:    pascals-ubuntu1.cloudapp.net  pascals-ubuntu1  ReadyRole
info:    vm list command OK

Ce n’est qu’un premier aperçu, mais il n’est pas exclus que je creuse un peu plus le sujet…