Comment utiliser Terraform pour configurer Azure Virtual Desktop

Il existe plusieurs méthodes pour configurer et tester un environnement Azure Virtual Desktop, mais Terraform présente des atouts majeurs qui peuvent aider les services informatiques à améliorer leur gestion d’AVD.

Migrer un environnement de postes de travail d’une infrastructure sur site vers le cloud peut être un défi majeur, car recréer toutes les charges de travail manuellement en mode cloud peut être chronophage.

Cette migration vers le cloud peut constituer le bon moment pour examiner de nouveaux outils qui aident les administrateurs informatiques à déployer les traitements plus facilement. L’un de ces outils est HashiCorp Terraform, qui – en tandem avec les outils natifs d’Azure Virtual Desktop (AVD) – peut faciliter grandement la transition.

Qu’est-ce que Terraform et pourquoi l’utiliser ?

Terraform est un produit de HashiCorp et est devenu populaire sur le marché de l’infrastructure-as-code. Avec Terraform, vous pouvez définir, prévisualiser et déployer votre infrastructure en cloud sous forme de code. Terraform peut faciliter le processus de déploiement de vos traitements en vous évitant de cliquer manuellement à travers Azure. Il automatise le déploiement d’une manière susceptible de faire gagner beaucoup de temps.

Une question que vous pourriez vous poser est pourquoi utiliser Terraform et non (par exemple) simplement utiliser PowerShell. Eh bien, il y a une grande différence avec un langage interprété. Oui, vous pouvez obtenir le même résultat avec un script PowerShell, mais Terraform facilite grandement le déploiement de votre infrastructure. Il ne nécessite pas beaucoup de connaissances en script. Vous définissez les ressources dont vous avez besoin et ensuite Terraform vous demandera le strict minimum d’informations pour créer ces ressources. Ces informations sont ensuite sauvegardées dans un fichier de variables. Ainsi, pour recréer votre environnement – par exemple, pour construire un environnement de test –, vous avez seulement besoin de faire une copie de votre fichier de variables et d’en changer certaines, comme le nom.

Vous pouvez obtenir le même résultat avec un script PowerShell, mais Terraform facilite grandement le déploiement de votre infrastructure.

Une autre tâche que Terraform réalise efficacement est de vérifier que tout est correct avant de finaliser le déploiement via la commande plan. Il examinera vos variables et votre configuration, et passera en revue votre plan global pour déterminer s’il créera l’environnement souhaité.

Le dernier grand avantage de Terraform est son utilisation sur plusieurs clouds et environnements d’infrastructure. Avec Terraform, vous pouvez déployer vos traitements aussi facilement sur Microsoft Azure que sur Amazon AWS ou sur site sur vSphere. Vous n’avez pas besoin d’apprendre de nouvelles lignes de commande – vous avez juste besoin de savoir comment les ressources Terraform sont appelées. Cela rend Terraform beaucoup plus puissant, facile à utiliser et prévisible qu’un script PowerShell.

Microsoft prend en charge pleinement Terraform. Vous pouvez accéder à la ligne de commande Terraform directement depuis le shell en mode cloud. Cela signifie que vous n’avez besoin de rien d’autre qu’un abonnement Azure pour commencer à utiliser Terraform avec Azure.

La puissance de Terraform avec AVD

Microsoft propose un guide expliquant comment vous pouvez créer un environnement AVD complet en quelques secondes à partir du code. Supposons que vous automatisiez également la création de votre image AVD avec, par exemple, Packer. Dans ce cas, vous pouvez ensuite utiliser Terraform pour créer votre environnement, de zéro jusqu’à un environnement de production complet sans avoir besoin de cliquer nulle part dans Azure, y compris les machines virtuelles hôtes avec votre image.

Un grand avantage de faire cela est que si un scénario catastrophe survient – par exemple, quelqu’un supprime votre environnement –, vous pouvez vous remettre sur pied en un rien de temps. Vous avez défini l’état final de votre environnement AVD au sein de Terraform, et vous pouvez revenir à cet état rapidement si nécessaire. Cela facilite et accélère grandement les migrations Azure. Bien sûr, vous devez toujours prendre en compte les données dont les utilisateurs ont besoin au sein de votre environnement AVD. Cela peut toujours nécessiter une migration de données séparée.

Avec votre fichier de variables pour AVD, vous pouvez également facilement créer un environnement complet de développement, de test, d’acceptation et de production (OTAP) en redéployant simplement votre environnement AVD avec d’autres variables. C’est un énorme avantage et peut permettre des économies non négligeables. Vous pouvez supprimer votre environnement OTAP en mode cloud lorsqu’il n’est pas nécessaire, et vous n’avez pas à payer pour le coût de son maintien en cloud. Lorsque vous en avez besoin, exécutez simplement votre script Terraform, et vous avez votre environnement. Cela utilise la puissance du cloud conjointement avec l’infrastructure en tant que code pour économiser facilement de l’argent.

Tableau des différences entre Ansible, Terraform et Vagrant
Tableau des différences entre Ansible, Terraform et Vagrant

Combiner Terraform avec d’autres outils

Terraform brille lorsqu’il est utilisé en tandem avec d’autres outils tels que GitHub, Azure DevOps et Ansible. Bien sûr, vous pouvez utiliser Terraform seul, mais la combinaison de ces outils conduira à un environnement plus stable et prévisible.

GitHub

Étant donné que Terraform repose sur du code, il est très pratique de sauvegarder ce code dans un dépôt Git comme GitHub. Grâce à la puissance de Git, vous pouvez voir qui modifie vos fichiers HCL Terraform, y compris la configuration et les variables. Vous pouvez créer différentes versions des fichiers – ou branches – et tester les déploiements. Et revenir facilement sur les modifications apportées aux fichiers. Combiner GitHub et Terraform est presque une évidence.

Saviez-vous également que vous pouvez déployer de nouveaux dépôts GitHub avec Terraform ? Vous pouvez donc aussi l’utiliser dans l’autre sens, rendant la correspondance parfaite. Et, bien sûr, Terraform est également sur la page GitHub de HashiCorp.

Azure DevOps

Azure DevOps est une plateforme d’automatisation tout-en-un construite sur les principes DevOps. Azure DevOps vous permet d’utiliser des tableaux pour suivre les histoires d’utilisateurs et les modifications de votre environnement. Vous pouvez lier ces tableaux à des artefacts dans les dépôts et les pipelines. Ces artefacts peuvent être des fichiers Terraform HCL qui sont sauvegardés dans les dépôts et bénéficient automatiquement du support Git.

Les pipelines Azure DevOps utilisent les commandes Terraform pour déployer l’infrastructure. Vous pouvez considérer Azure DevOps comme ajoutant Git, la gestion des modifications et la capacité de combiner Terraform avec d’autres outils comme PowerShell, le tout dans un seul système. Cela fait d’Azure DevOps un système puissant et complet pour tout déploiement en mode cloud.

Ansible

Ansible est également un outil d’automatisation puissant que vous pouvez combiner avec Terraform. Il vous permet de combiner Terraform avec d’autres outils en ligne de commande comme Packer, etc. L’un des grands avantages d’Ansible est qu’il est open source, et vous pouvez l’utiliser sans frais, tout comme Terraform.

Bien sûr, Ansible et Terraform proposent tous deux des plans payants pour utiliser leurs outils. Terraform est un excellent outil pour créer rapidement une infrastructure en mode cloud. Mais Ansible vous permet, par exemple, de déployer des applications sur cette infrastructure et de maintenir une gouvernance pour vérifier si votre déploiement fonctionne correctement. Vous ne voulez pas toujours reconstruire entièrement votre plateforme lorsqu’il y a juste un changement, et avec Ansible, vous pouvez simplement automatiser ce changement sur l’ensemble de votre plateforme. Il offre également une fonction de surveillance et la possibilité de consigner des tickets ou de résoudre des problèmes.

Pour approfondir sur Poste de travail virtuel (VDI, DaaS)