Provisionner l’infrastructure¶
Cette configuration OpenTofu gère l’infrastructure de QueFaireDeMesObjets sur Scaleway.
OpenTofu & Terragrunt¶
Nous utilisons OpenTofu, version open-source de Terraform
, pour automatiser le provisionning de l’infractructure. Suivre la documentation pour installer OpenTofu.
Terragrunt est utilisé en complément d’OpenTofu pour avoir une configuration DRY. Suivre la documentation pour installer Terragrunt.
La configuration est définie dans le dossier infrastructure
Prérequis¶
Installer et configurer le client Scaleway en suivant les instructions de Scaleway
Vérifer que vous avez les droits d’administration du projet concerné par cette planificaton d’infrastructure
IaC : Infrastructure as Code¶
Structure¶
infrastructure/
├── environments/
│ ├── prod/
│ │ ├── terragrunt.hcl
│ │ ├── terraform.tfvars.example
│ │ └── terraform.tfvars -> non partagé
│ ├── preprod/
│ └── preview/
└── modules/
├── database/
│ ├── main.tf
│ ├── variables.tf
│ └── outputs.tf
└── provider/
Configuration¶
Copier le fichier
environments/<ENV>/terraform.tfvars.example
versterraform.tfvars
Modifier les valeurs dans
terraform.tfvars
avec vos informations :project_id
: ID du projet Scalewayorganization_id
: ID de l’organisation Scalewaydb_password
: Mot de passe sécurisé pour la base de données…
Exécution¶
tfstate¶
⚠️ le state
est enregistré sur une répertoire s3 de Scaleway s3://lvao-terraform-state
Par environnement¶
L’environnement de preview
est utilisé pour tester notre projet IaC, on détruit volontairement l’infrastructure créée sur cet environnement une fois que la configuration terraform est testée.
Pour chaque environnement :
en Preprod dans le dossier infrastructure/environments/preprod à la racine du projet
en Prod dans le dossier infrastructure/environments/prod à la racine du projet
Se placer dans le répertoire infrastructure/environments/<ENV>
et exécuter les commandes suivantes
terragrunt init -reconfigure
teragrunt plan
teragrunt apply
Pour chaque commande, l’environnement doit-être précisé