Guide de déploiement d’un template ARM

Bonjour, cet article est la suite de mon article concernant Azure Resource Manager. Au sein de celui-ci nous avions vu comment créer un template ARM avec Visual Studio. Ce que je vous propose dans ce nouvel article c’est de voir ensemble les différentes options permettant de déployer un template ARM. Mais trêve de bavardage, entrons dans le vif du sujet.

Le contenu de la solution utilisé pour la suite de cet article se trouve ici.

Déploiement d’un template ARM avec Visual Studio

Afin de déployer un template depuis Visual Studio, il vous suffit d’ouvrir une solution contenant un projet de déploiement, et de faire un clic droit sur celui-ci. Au niveau du menu, sélectionnez l’option « Deploy », et sélectionnez ensuite « New Deployment ».

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step1 Guide de déploiement d'un template ARM

Une nouvelle fenêtre s’ouvre dans laquelle les informations suivantes devront être saisies:

  • Compte utilisé pour effectuer le déploiement.
  • Abonnement dans lequel doit se faire le déploiement.
  • Groupe de ressources auquel sera rattaché les ressources. Vous pouvez soit créer un nouveau groupe de ressources, soit vous baser sur un groupe déjà existant au niveau de l’abonnement sélectionné.
  • Vous devez ensuite choisir le fichier JSON de déploiement et aussi le fichier de paramètres.

Création d’un groupe de ressources

Pour le déploiement de notre template, nous allons partir sur un nouveau groupe de ressources, cela facilitera notamment la suppression des ressources liées à cet article. Pour cela sélectionnez l’option new, et configurez votre nouveau groupe de ressources.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step2 Guide de déploiement d'un template ARM

Dés que vous aurez correctement saisie ces paramètres, vous pourrez alors déployer votre solution.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step3 Guide de déploiement d'un template ARM

Création d’un instance Key Vault

Editez les paramètres afin de pouvoir saisir les valeurs concernant le login et le mot de passe de l’instance SQL. Afin de pouvoir protéger notre mot de passe, nous allons nous appuyer sur une instance du service Key Vault. Pour faire bref, ce service permet de gérer des informations secrètes de manière sécurisée. Après avoir correctement saisie les informations demandées, cliquez sur OK pour continuer

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step4 Guide de déploiement d'un template ARM

Au niveau de la popup, Cliquez sur Oui pour valider l’utilisation de Key Vault.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step5 Guide de déploiement d'un template ARM

Ensuite, il vous restera ensuite les valeurs des différents autres paramètres qui sont utilisés au niveau du template. Une fois terminée, cliquez sur « Save » pour lancer le déploiement.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step6 Guide de déploiement d'un template ARM

Vous pouvez voir l’avancé du déploiement au niveau de la fenêtre de sortie de Visual Studio. Si tout se passe, au bout de quelques secondes, vous devriez avoir un message comme celui de l’image ci-dessous, si tout s’est déroulé sans erreur.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step7 Guide de déploiement d'un template ARM

Pour confirmer le bon déroulement de l’opération, connectez vous au portail Azure, et vérifiez que votre groupe de ressources a bien été créée et que celui-ci contient bien votre serveur SQL et votre base de données.

blog ai3 Deploiement-ARM-avec-Visual-Studio-Step8 Guide de déploiement d'un template ARM

Félicitation, vous venez de publié votre premier template sur Azure. Afin de vérifier la généricité de notre template, vous pouvez essayer de redéployer celui-ci en modifiant les paramètres.

Une fois vos tests terminés, supprimez les groupes de ressources afin d’éviter une facturation inutile. Ceci étant fait, nous allons pouvoir voir une autre méthode de déploiement en passant par le portail Azure. Ceci sera le sujet des prochains paragraphes.

Déploiement depuis le portail Azure

Afin de déployer votre template, au niveau du menu de gauche, cliquez sur « Nouveau », et au niveau du panneau venant de s’ouvrir entrer le texte « Template deployment » au niveau de la zone de recherche, et validez votre saisie.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step1 Guide de déploiement d'un template ARM

Au niveau du panneau de résultats, choisissez l’option « Déploiement de modèle ».

blog ai3 Deploiement-ARM-avec-portail-Azure-Step2 Guide de déploiement d'un template ARM

Au niveau du panneau qui vient de s’ouvrir cliquez sur la bouton Créer afin d’ouvrir le panneau qui va nous permettre de configurer les informations concernant notre nouveau déploiement.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step3 Guide de déploiement d'un template ARM

Création d’un nouveau modèle

Un nouveau panneau va alors s’ouvrir, vous permettant de configurer les différents éléments nécessaire à votre déploiement. Dans un premier temps vous devrez définir le contenu du template que vous désirez déployer. Afin de renseigner ce template vous pouvez soit construire votre template depuis le portail, comme nous l’avons vu au paragraphe 2.1, soit copier coller le contenu depuis un fichier existant, et adapter ce contenu à votre besoin, soit partir sur un modèle de création rapide préexistant et l’adapter suivant vos désirs. Pour ce dernier cas il vous suffira de cliquer sur le bouton « Modèle de démarrage rapide » et de sélectionner le template sur lequel vous désirez vous baser.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step4 Guide de déploiement d'un template ARM

Dans notre cas, nous allons copier le contenu du template que nous avons créé depuis Visual Studio et le coller au niveau du portail Azure.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step5 Guide de déploiement d'un template ARM

Gestion des paramètres

Dès que vous avez terminé les modifications de votre template vous pouvez sauvegarder celles-ci et passer à l’étape suivante. Vous pouvez ensuite passer au renseignement des différents paramètres définis au niveau de notre template comme illustré dans l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step6 Guide de déploiement d'un template ARM

Gestion du groupe de ressources

Vos paramètres étant définis, il vous faudra ensuite choisir l’abonnement sur lequel vous désirez effectuer le déploiement, choisir le groupe de ressources dans lequel vous désirez déployer vos ressources (vous pouvez aussi choisir de créer un nouveau groupe), et enfin choisir l’emplacement où résidera votre groupe. La dernière étape consistera à accepter les conditions d’utilisation. Cliquer ensuite sur le bouton « Créer » pour lancer le déploiement de votre template.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step7 Guide de déploiement d'un template ARM

Il se pourrait que vous ayez certaines erreurs empêchant le bon déroulement de l’opération. Dans pareils cas vous verrez apparaître un petit encart vous informant du mauvais déroulement de la procédure de déploiement. Cliquez alors sur cet encart pour avoir les informations concernant les erreurs, et corrigez celles-ci. Réessayer de lancer le déploiement. Je vous le dit de suite les erreurs remontées ne sont pas très parlante, mais bon il faut faire avec.

Exécution du déploiement

blog ai3 Deploiement-ARM-avec-portail-Azure-Step8 Guide de déploiement d'un template ARM

Si tout se déroule comme prévue vous devriez voir apparaître une notification vous information que le déploiement de votre template a commencer.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step9 Guide de déploiement d'un template ARM

Après avoir attendu quelques instants vous pouvez cliquez sur les notifications pour voir si votre déploiement est terminé.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step10 Guide de déploiement d'un template ARM

Vous pouvez cliquer sur la notification pour voir le détails concernant l’exécution du déploiement.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step11 Guide de déploiement d'un template ARM

Voilà le déploiement de notre template depuis le portail Azure est maintenant terminé, il ne nous reste plus qu’a voir comment effectuer cette même tâche avec PowerShell. N’oubliez pas de supprimer le groupe de ressources que vous venez de créer pour éviter de dépenser de l’argent inutilement . Comme le dit si bien Guy Roux, je sais il y a mieux comme référence, il faut pas gâcher.

Déploiement d’un template existant

Dernière petite chose avant de passer à PowerShell. Si vous désirez redéployer votre template, il vous suffit de sélectionner le groupe de ressources créé lors du déploiement de ce template, ensuite d’aller sur déploiements et de cliquer sur le déploiement que vous venez d’effectuer.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step12 Guide de déploiement d'un template ARM

Ensuite au niveau du panneau regroupant les informations sur le déploiement, il vous suffit de cliquer sur le bouton Redéployer, renseigner les paramètres concernant votre nouveau déploiement, de sélectionner un groupe de ressources ainsi que la région qui sera concernée, et ensuite de cliquer sur le bouton créer pour lancer celui-ci.

blog ai3 Deploiement-ARM-avec-portail-Azure-Step13 Guide de déploiement d'un template ARM

Voilà cette fois nous en avons vraiment finis avec le portail, et nous allons aborder la dernière partie de cet article qui concerne le déploiement d’un template à l’aide de PowerShell.

Déploiement d’un template ARM avec PowerShell

Avant d’exécuter le script PowerShell permettant d’effectuer le déploiement de notre template, nous allons ouvrir la solution Visual Studio.

Au niveau de Visual Studio, éditez le fichier de paramètres et renseignez ceux-ci. Cette opération doit être réalisée car ce fichier sera utilisé par notre Script PowerShell pour récupérer les valeurs des paramètres définis au niveau du template.

blog ai3 Deploiement-ARM-avec-PowerShell-Step1 Guide de déploiement d'un template ARM

Afin de procéder au déploiement de notre template à l’aide de PowerShell, nous allons utiliser le composant PowerShell ISE. Ouvrez une nouvelle instance de PowerShell ISE, et ouvrez ensuite le fichier PS1 provenant de la solution Visual Studio.

Connexion à votre abonnement Azure

Ayant récupérer notre script, nous allons maintenant procéder à l’ouverture d’une session sur notre abonnement Azure. Pour se faire entrez la commande suivante : Login-AzureRmAccount, et saisissez vos information de connexion.

blog ai3 Deploiement-ARM-avec-PowerShell-Step2 Guide de déploiement d'un template ARM

Gestion des paramètres

Dans un premier temps nous allons exécuter les commandes du script, permettant de déclarer les paramètres, unes à une au niveau de PowerShell. Pour se faire sélectionnez chacune des lignes concernant les paramètres et cliquez sur le bouton « Exécuter la sélection » comme montré dans l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-PowerShell-Step3 Guide de déploiement d'un template ARM

Et en sortie vous devriez avoir quelque chose ressemblant à l’image ci-dessous.

blog ai3 Deploiement-ARM-avec-PowerShell-Step4 Guide de déploiement d'un template ARM

Création d’un groupe de ressources

Nous allons maintenant passé à l’exécution de la commande permettant de créer le groupe de ressources,

Pour cela entrez la commande suivante : New-AzureRmResourceGroup -Name $resourceGroupName -Location $localisation -Verbose -Force

Vous devriez avoir le résultat suivant au niveau de la sortie :

blog ai3 Deploiement-ARM-avec-PowerShell-Step5 Guide de déploiement d'un template ARM

Création du container Key Vault

Notre groupe de ressources étant créer nous allons passer à la création d’un container KeyVault. Pour faire court un container KeyVault permet d’héberger des données sensibles (tel un mot de passe d’instance SQL) de manière sécurisé, et nous allons utilisé ce container afin de gérer le mot de passe de notre instance SQL afin de ne pas l’avoir dans notre fichier template.

Afin de créer votre container KeyVault, veuillez sélectionné la commande suivante : New-AzureRmKeyVault -VaultName $keyVaultName -ResourceGroupName $resourceGroupName -Location $localisation -EnabledForDeployment et cliquez sur le bouton « Exécuter la sélection ».

Si tous se passe correctement vous devriez avoir une sortie à l’image de la copie d’écran ci-dessous :

blog ai3 Deploiement-ARM-avec-PowerShell-Step6 Guide de déploiement d'un template ARM

Gestion des droits sur le container Key Vault

Par contre si vous avez un résultat ressemblant à celui de l’image ci-dessous au niveau du résultat de l’exécution de la commande, vous allez devoir lancer une autre commande afin de mettre en place des droits sur le container que nous venons de créer.

blog ai3 Deploiement-ARM-avec-PowerShell-Step7 Guide de déploiement d'un template ARM

Dans le cas ou vous devez ajouter des droits sur le container Azure Vault, veuillez entrer la commande suivante :

Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName -UserPrincipalName ‘votreadressemail@hotmail.com’ -PermissionsToKeys create,import,delete,list -PermissionsToSecrets set,delete

Ajout de la chaine de connexion dans le container Key Vault

Notre container étant maintenant opérationnel, nous allons sauvegardé notre mot de passe à l’intérieur de celui-ci.

Pour cela exécuter la ligne suivante pour pouvoir convertir la chaine de caractères contenant notre mot de passe en type secureString :

$sqlAdminPassword = ConvertTo-SecureString -String $serverPassword -AsPlainText -Force

Lancer ensuite la commande suivante afin de sauvegarder le mot de passe au niveau de votre container :

Set-AzureKeyVaultSecret -VaultName $keyVaultName -Name $keyVaultSqlAdminPasswordSecretName -SecretValue $sqlAdminPassword

Vous devriez avoir un résultat semblable à ce que vous pouvez voir dans l’image ci-dessous :

blog ai3 Deploiement-ARM-avec-PowerShell-Step8 Guide de déploiement d'un template ARM

Nous allons maintenant remplacer les informations de paramètres concernant le container Key Vault au niveau du fichier template de paramètres.

Afin d’effectuer cette opération, veuillez entrer la commande suivante pour récupérer les informations concernant le container Key Vault : Get-AzureRmKeyVault -VaultName $keyVaultName

Au niveau de la sortie copier la valeur de la propriété Resource ID.

blog ai3 Deploiement-ARM-avec-PowerShell-Step9 Guide de déploiement d'un template ARM

Copier cette valeur au niveau du fichier de paramètre au niveau de la valeur du paramètre demodeploiementAdminLoginPassword.

blog ai3 Deploiement-ARM-avec-PowerShell-Step10 Guide de déploiement d'un template ARM

Exécution du déploiement

Nous allons maintenant pouvoir exécuter la partie du script concernant le déploiement. Pour se faire sélectionner la ligne correspondante :

New-AzureRmResourceGroupDeployment -Name $deploymentName -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $templateParametersFilePath -Verbose -Force

Et cliquez sur le bouton « Exécuter la sélection ».

blog ai3 Deploiement-ARM-avec-PowerShell-Step11 Guide de déploiement d'un template ARM

Au niveau de la sortie d’exécution de la commande vous devriez avoir quelque chose ressemblant à l’image ci-dessous :blog ai3 Deploiement-ARM-avec-PowerShell-Step12 Guide de déploiement d'un template ARM

Vous pouvez voir au niveau du portail que vos ressources on bien été créées.

blog ai3 Deploiement-ARM-avec-PowerShell-Step13 Guide de déploiement d'un template ARM

Voilà cette dernière étape marque la fin de cet article concernant le déploiement de template ARM.

Rendez-vous bientôt pour un nouvel article.

David Moïsa

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.