Le code
Introduction
Le code, ou plutôt les codes sont utilisés depuis toujours en informatique pour la gestion des systèmes. On parle principalement d’automatisation des tâches. Faire et refaire de manière automatique, dérouler par le code un ensemble d’actions. Ce qui peut être fait manuellement est fait automatiquement. Le Cloud n’échappe évidemment pas à cette pratique.
Ce qui est différent, c’est plutôt ce que couvre l’usage du code. On bascule peu à peu d’une administration par le code à un déploiement par le code que l’on retrouve sous le terme IaaC (Infrastructure as a Code ou infrastructure en tant que code). Certes, déployer par le code sur son centre de données local est possible. La mise en place d’une telle pratique demande beaucoup d’expertise et un temps de préparation conséquent.
Le Cloud Azure est déjà prêt pour cet usage. Dans ce chapitre, quatre solutions différentes vont être abordées. Il en existe d’autres, mais comprendre comment fonctionnent celles qui sont présentées ici revient également à comprendre le fonctionnement des méthodes dérivées.
PowerShell, Az CLI, ARM et Bicep sont expliqués et mis en pratique par quelques exercices. Le but n’est pas de savoir tout faire...
PowerShell
PowerShell est un langage qui est d’abord né avec Windows et qui est depuis porté sur de nombreux systèmes, de Windows à Linux (dans de nombreuses versions) en passant par Mac. Cette version multisystème d’exploitation est appelée PowerShell Core, en version 7 actuellement. Ce langage est parfaitement adapté au Cloud et a également l’avantage d’être directement accessible depuis le portail sans installation préalable. C’est un langage simple mais riche en commandes et paramètres. Il est construit sous la forme d’un couple verbe + nom.
Le verbe décide d’une action (Get, Set, Test…) et est complété par un nom (VM, Content…) qui ajoute une donnée de context (une VM, un compte de stockage, etc.). Par exemple, Get-VM demande des informations pour une machine virtuelle Hyper-V (le produit de virtualisation Microsoft).
Petite particularité liée à Azure : les noms sont préfixés par Az (pour Azure) afin d’éviter la confusion. Ainsi, la demande d’information pour une machine virtuelle Azure se fera au travers de la commande Get-AzVM. De cette manière, il est impossible de confondre les deux contextes.
Le reste de la commande est constitué de tout un ensemble de paramètres.
Comme expliqué ci-dessus, le portail propose PowerShell sans installation mais a besoin d’un compte de stockage pour fonctionner. Dans les exercices suivants, après la création d’un compte de stockage (rattaché aux commandes du portail), quelques commandes sont présentées pour faciliter la montée en compétence sur le code.
Les actions suivantes vont créer un compte de stockage pour l’utilisation des commandes depuis le portail. Si vous avez effectué les exercices de la section Complément du chapitre Les coûts, vous avez déjà créé ce compte de stockage. Les trois premières étapes ne sont plus nécessaires. Vous pouvez reprendre les exercices à partir de : Cette console est ouverte dans un contexte Azure affiché par la commande Get-Azcontext.
Depuis le portail Azure, lancez le raccourci Cloud Shell >_...
Az CLI
Az CLI est assez différent de PowerShell. Il ne s’utilise pas dans une fenêtre PowerShell mais dans une fenêtre Bash (Linux). C’est un ensemble de commandes qui effectuent les mêmes actions que PowerShell mais avec une syntaxe différente. Par affinité, PowerShell est souvent le choix d’un utilisateur Windows, et Az CLI celui d’un utilisateur Linux. Les exercices suivants permettent de se familiariser avec le langage.
Dans le menu en haut à gauche, basculez de PowerShell à Bash en utilisant l’ascenseur de sélection.
Sélection du type de console depuis le menu
Une fenêtre Basculer vers Bash dans Cloud Shell s’ouvre, validez par Confirmer.
Tapez la commande az account list (il n’y a pas de tiret entre les commandes) pour afficher les informations de comptes ; cette commande est équivalente à la commande Get-Azcontext PowerShell utilisée dans les exercices précédents, le retour-écran est toutefois plus complet.
Traiter un retour de commande Az CLI ne se fait pas avec la commande Select-Object comme avec PowerShell mais avec une requête JMESpath. JMESPath est un langage adapté à JSON (JavaScript Object Notation) pour filtrer et afficher les résultats. Ce type de requête est présenté ici succinctement. Même si cela peut paraître...
ARM
Le modèle ARM (Azure Resource Manager) est celui dont on entend le plus parler. Il est très complet et permet de créer de ressources, de les mettre à jour mais également de les supprimer. C’est donc le code de gestion parfait.
On ne parle pas de code de programmation mais plutôt de déclaration par le code. Il faut décrire un état souhaité qu’ARM va ensuite mettre ou remettre en cohérence. Le langage supporte les paramètres, les variables et les fonctions. Construire un fichier JSON ARM de zéro est une opération qui peut rebuter dans un premier temps, et ce n’est pas le sujet lorsque l’on débute avec Azure. L’approche va être différente dans le livre, afin de permettre même aux débutants de déployer une première ressource sans difficulté. Et surtout, de pouvoir continuer à le faire en toute autonomie.
Pour cela, la première opération est de créer une ressource depuis le portail, puis d’utiliser le code généré pour créer la ressource suivante. C’est ce qui est proposé dans l’exercice.
Depuis le portail Azure, effectuez une recherche sur le terme coffres et sélectionnez Coffres de sauvegarde.
Choisissez + Créer, sélectionnez le groupe de ressources rg-formation-eni-test, puis la région (Europe) France-Centre.
Nommez le coffre moncoffrearm.
Sélectionnez une redondance...
Bicep
Bicep est arrivé depuis peu et sa facilité de mise en œuvre est un gros avantage pour qui débute ou pour qui ne déploie pas régulièrement avec le code. C’est un modèle ARM mais avec une syntaxe plus légère et plus compréhensible. Plutôt que de présenter ce modèle, une façon simple et agréable de comprendre les différences entre Bicep et ARM est de consulter le site http://playgroundbicep.azurewebsites.net/.
Depuis l’accueil, en haut à droite du menu se trouve un bouton Sample Template. C’est une sélection de modèles ARM que le site se propose de modifier et il va les convertir en un code Bicep équivalent dans la partie gauche de l’écran.
Avec le bouton Sample Template, sélectionnez le premier exemple 000/01-hello-world.
Consultez le retour-écran : à droite, les 27 lignes de code ARM, à gauche, l’équivalent en 5 lignes pour Bicep. Sans même comprendre de quoi il s’agit, le code Bicep est beaucoup plus facile à lire.
Testez quelques exemples supplémentaires.
Le code Bicep ne peut être utilisé sous cette forme. Il doit être compilé pour devenir un fichier template utilisable sur le portail Azure. Cette fonctionnalité avancée est à tester pour qui souhaite...