- Nous sommes désormais à une époque où il suffit de quelques clics dans la console AWS pour déployer un serveur, ou d’une seule ligne de commande pour mettre en place diverses infrastructures
- IaC
- Gérer et provisionner l’infrastructure avec du code
- Tout ce que nous voulons, comme le réseau, les serveurs ou le stockage, est enregistré et géré sous forme de code
- Cela permet de partager, tester et réutiliser le code afin de gérer l’infrastructure de manière plus productive
- Terraform
- Terraform est l’outil le plus connu parmi les solutions d’IaC
- Il permet de tout gérer, non seulement les clouds comme AWS, GCP et Azure, mais aussi les solutions internes à l’entreprise
- Il utilise une approche déclarative qui définit le résultat final souhaité, ce qui facilite la prévision du résultat
- Même en réutilisant le code, il garantit le même résultat
- Avec
terraform plan, il établit un plan détaillé de ce qui sera créé sur AWS
- L’application réelle se fait via
terraform apply
- Les informations sur les ressources créées par Terraform sont gérées dans un fichier JSON appelé
tfstate
- Mode d’utilisation de Terraform
- Il fournit des fonctionnalités permettant de créer des ressources à partir d’entrées utilisateur via différents mots-clés, puis d’afficher les résultats d’exécution dans le CLI
- Provider
- Plugin qui implémente un type de ressource
- On recherche le provider du cloud ou du service utilisé, comme AWS ou GCP, on l’ajoute à la configuration, puis on utilise les ressources correspondantes pour provisionner l’infrastructure
- Module
- Petite configuration Terraform réutilisable qui permet de gérer un groupe de ressources liées comme s’il s’agissait d’une ressource unique
- On peut aussi utiliser librement des modules créés par d’autres afin de gérer efficacement de nombreuses ressources avec peu de code
- Il est possible d’appeler plusieurs fois le même module avec des configurations différentes
- Resource
- Mot-clé qui décrit un ou plusieurs objets d’infrastructure, comme des composants de haut niveau tels qu’un réseau virtuel, une instance de calcul ou un enregistrement DNS
- Variable
- Les variables d’entrée permettent de définir les propriétés des ressources sans modifier le code source du module
- Elles ressemblent aux paramètres de fonction d’un langage de programmation
- Elles rendent le partage et la réutilisation des modules plus flexibles
- Output
- Les valeurs de sortie permettent de produire des informations d’infrastructure utilisables en ligne de commande et d’exposer des informations à d’autres configurations Terraform
- Elles ressemblent aux valeurs de retour d’un langage de programmation
Aucun commentaire pour le moment.