Terragrunt et le HCL: Jouer le multi environnements avec terraform et le langage de configuration HCL de HashiCorp
Introduction Terragrunt est un outil IaC et DRY (Don't Repeat Yourself) Terragrunt permet d'éviter la duplication de code en centralisant la configuration commune dans des fichiers partagés, plutôt…

Introduction
Terragrunt est un outil IaC et DRY (Don't Repeat Yourself) Terragrunt permet d'éviter la duplication de code en centralisant la configuration commune dans des fichiers partagés, plutôt que de répéter la même configuration dans chaque module Terraform.
Gestion des backends distants Il automatise la configuration des backends Terraform (comme S3 pour stocker les fichiers d'état), en générant automatiquement les configurations nécessaires.
Gestion des dépendances Terragrunt peut gérer les dépendances entre différents modules Terraform et les exécuter dans le bon ordre automatiquement.
Environnements multiples Il facilite la gestion de plusieurs environnements (dev, staging, production) avec des configurations légèrement différentes sans dupliquer le code.
Exécution en parallèle Terragrunt peut exécuter plusieurs modules Terraform en parallèle quand c'est possible, accélérant ainsi les déploiements.
En pratique, vous créez des fichiers terragrunt.hcl qui définissent comment utiliser vos modules Terraform, et Terragrunt s'occupe de générer et d'exécuter les bonnes commandes Terraform avec les bonnes configurations.
C'est particulièrement utile dans des organisations qui gèrent de nombreuses ressources cloud avec Terraform et qui veulent éviter la complexité et la duplication de code.
Dans cet article, nous allons déployer des instances Incus (LXC) avec Terraform via Terragrunt, avec :
-
une structure DRY (Don't Repeat Yourself)
-
une configuration modulaire
-
des backends par environnement (si souhaité)
-
des variables propres à chaque env
-
des instances avec des noms et des specs différentes selon l'env
Installler terragrunt et terraform
curl -sSfL https://github.com/gruntwork-io/terragrunt/releases/latest/download/terragrunt_linux_amd64 -o /usr/local/bin/terragrunt && chmod +x /usr/local/bin/terragrunt
- Verifier
terragrunt --version
- Installer terraform
## install unzip
sudo apt install unzip
## install terraform
curl -sSfL https://releases.hashicorp.com/terraform/1.12.2/terraform_1.12.2_linux_amd64.zip -o /tmp/terraform.zip && unzip /tmp/terraform.zip -d /tmp && sudo mv /tmp/terraform /usr/local/bin/ && rm /tmp/terraform.zip && chmod +x /usr/local/bin/terraform
- Verifier
terraform --version
Test dans un projet
- Requirements:
- incus installé
🌲 Arborescence

- Commandes
cd envs/dev/incus-vm # env folder
terragrunt plan
terragrunt apply
terragrunt destroy
cd terragrunt ## root folder
terragrunt plan --all
terragrunt apply --all
terragrunt destroy --all
Commentaires
Aucun commentaire pour le moment.