Terraform est un outil open-source d’Infrastructure as Code (IaC) développé par HashiCorp, principalement utilisé par les équipes DevOps pour automatiser diverses tâches d’infrastructure. Voici les principaux aspects de Terraform :
Fonctionnalités clés
- Provisionnement d’infrastructure : Terraform permet de créer, déployer, modifier et versionner une infrastructure IT complète à travers du code.
- Multi-cloud : Il fonctionne avec les principaux fournisseurs de cloud public (AWS, Azure, Google Cloud Platform, etc.) ainsi qu’avec des solutions personnalisées.
- Langage déclaratif : Terraform utilise un langage de configuration simple appelé HCL (HashiCorp Configuration Language) pour décrire l’infrastructure souhaitée.
Fonctionnement
Terraform fonctionne grâce à deux composants principaux :
- Terraform Core : Il compare l’état souhaité (défini dans les fichiers de configuration) à l’état actuel de l’infrastructure et détermine les actions à exécuter.
- Providers : Ce sont des plugins qui permettent à Terraform d’interagir avec différentes plateformes et services.
Avantages
- Automatisation : Réduit le travail manuel et les erreurs potentielles dans la gestion de l’infrastructure.
- Flexibilité : Peut être utilisé avec différents fournisseurs de cloud et des solutions personnalisées.
- Collaboration : Permet aux équipes de travailler ensemble sur l’infrastructure comme elles le feraient sur du code d’application.
- Reproductibilité : Facilite la création d’environnements identiques et la reprise après sinistre.
En résumé, Terraform est un outil puissant qui permet aux équipes DevOps de gérer efficacement leur infrastructure à travers le code (IaC), offrant ainsi une plus grande flexibilité, reproductibilité et collaboration dans le déploiement et la gestion des ressources IT.
Dans le cadre de notre projet homelab, Terraform va permettre de créer un certain nombre de conteneurs LXC sur notre cluster Proxmox VE afin d’exécuter du code Julia à l’intérieur de chaque conteneur.