Informations, communications, conseils en infrastructure

1.5 Azure Resource Manager (ARM) Templates : Guide complet

 Présentation de la technologie

Les ARM Templates sont des fichiers JSON qui définissent l’infrastructure et la configuration des ressources Azure. Ils permettent de déployer, mettre à jour et supprimer des ressources de manière cohérente et reproductible, en utilisant le concept d’Infrastructure as Code (IaC).

 

Principaux avantages :

  • Déploiements cohérents et reproductibles
  • Gestion des dépendances entre ressources
  • Modularité et réutilisation du code
  • Versionnage et contrôle des modifications
  • Automatisation des déploiements

 

 Structure d’un ARM Template

Un ARM Template se compose généralement des sections suivantes :

 

  1. Schema et version du contenu
  2. Paramètres
  3. Variables
  4. Ressources
  5. Sorties

 

Exemple de structure de base :

 

json

{

  « $schema »: « https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json »,

  « contentVersion »: « 1.0.0.0 »,

  « parameters »: {},

  « variables »: {},

  « resources »: [],

  « outputs »: {}

}

 

 

 Mise en place technique

  1. Choisissez un éditeur de code (ex: Visual Studio Code avec l’extension ARM Tools)
  2. Créez un nouveau fichier avec l’extension .json
  3. Commencez par définir le schéma et la version du contenu
  4. Ajoutez les sections pour les paramètres, variables, ressources et sorties
  5. Définissez les ressources Azure à déployer dans la section « resources »

 

 Exploitation technique courante

 Déploiement d’un ARM Template

 

Via Azure CLI :

az deployment group create –resource-group <nom-groupe-ressources> –template-file <chemin-fichier-template> –parameters @<chemin-fichier-parametres>

 

 

Via Azure PowerShell :

powershell

New-AzResourceGroupDeployment -ResourceGroupName <nom-groupe-ressources> -TemplateFile <chemin-fichier-template> -TemplateParameterFile <chemin-fichier-parametres>

 

 

 Utilisation des paramètres

 

Les paramètres permettent de rendre les templates plus flexibles et réutilisables :

 

json

« parameters »: {

  « storageName »: {

    « type »: « string »,

    « minLength »: 3,

    « maxLength »: 24

  }

}

 

 

 Utilisation des variables

 

Les variables permettent de simplifier le template et de réutiliser des valeurs :

 

json

« variables »: {

  « storageAccountName »: « [concat(parameters(‘storageName’), uniqueString(resourceGroup().id))] »

}

 

 

 Définition des ressources

 

Exemple de définition d’une ressource de compte de stockage :

 

json

« resources »: [

  {

    « type »: « Microsoft.Storage/storageAccounts »,

    « apiVersion »: « 2021-04-01 »,

    « name »: « [variables(‘storageAccountName’)] »,

    « location »: « [resourceGroup().location] »,

    « sku »: {

      « name »: « Standard_LRS »

    },

    « kind »: « StorageV2 »

  }

]

 

 

 Utilisation des sorties

 

Les sorties permettent de récupérer des informations après le déploiement :

 

json

« outputs »: {

  « storageAccountId »: {

    « type »: « string »,

    « value »: « [resourceId(‘Microsoft.Storage/storageAccounts’, variables(‘storageAccountName’))] »

  }

}

 

 

 Bonnes pratiques

  • Utilisez des paramètres pour les valeurs qui changent entre les déploiements
  • Nommez clairement vos ressources et utilisez des conventions de nommage cohérentes
  • Utilisez des expressions de template pour dynamiser vos déploiements
  • Testez vos templates dans un environnement de développement avant de les déployer en production
  • Utilisez le mode de déploiement incrémentiel par défaut pour éviter la suppression accidentelle de ressources

 

En maîtrisant ces aspects des ARM Templates, vous serez en mesure de créer, déployer et gérer efficacement vos ressources Azure de manière automatisée et reproductible.

 

Articles similaires

Rémy ACCOLEY

Consultant infrastructure

Expertise Azure, Windows serveur, Exchange, Teams, Office 365, Téléphonie…

Mes articles du moment

Sponsor

Besoin d'un support avec Keysoncloud

Offre Free

Explore

Découvrez nos formations

Offre Free

Vous voulez poster vos contenus

Offre Free