Initialise un répertoire de travail Terraform : télécharge les providers, les modules et configure le backend.
À exécuter à chaque nouveau projet, après ajout d’un provider/module, ou changement de backend.
Options principales
| Option | Défaut | Description |
|---|---|---|
-backend=true|false | true | Configure le backend (désactiver pour travailler hors connexion) |
-upgrade | non | Met à jour les providers et modules vers les dernières versions compatibles |
-get=true|false | true | Télécharge les modules déclarés |
-input=true|false | true | Demande les valeurs manquantes de manière interactive |
-lock=true|false | true | Verrouille le state pendant l’init |
-verify-plugins=true|false | true | Vérifie les signatures des plugins |
-reconfigure | non | Réinitialise le backend sans migration (ignore l’état existant) |
-migrate-state | non | Migre le state vers le nouveau backend configuré |
Exemples
# Init standard
terraform init
# Init avec mise à jour des providers
terraform init -upgrade
# Init sans configurer le backend (dev local, pas d'accès cloud)
terraform init -backend=false
# Init non-interactif (CI/CD)
terraform init -input=false
# Changer de backend et migrer le state
terraform init -migrate-state
# Réinitialiser le backend sans migrer (repart de zéro)
terraform init -reconfigureCe que terraform init fait concrètement
terraform init
│
├── Télécharge les providers déclarés dans required_providers
│ → stockés dans .terraform/providers/
│
├── Télécharge les modules déclarés
│ → stockés dans .terraform/modules/
│
├── Configure le backend
│ → s'authentifie et vérifie l'accès au state distant
│
└── Crée .terraform.lock.hcl
→ verrouille les versions exactes des providers
Fichiers créés
.terraform/
├── providers/
│ └── registry.terraform.io/hashicorp/aws/5.x.x/linux_amd64/
├── modules/
│ └── (modules téléchargés)
└── terraform.tfstate ← backend local
.terraform.lock.hcl ← versions verrouillées des providers (à committer)
En relation avec
- Cycle de vie — Vue d’ensemble — étape 1 du workflow
- terraform plan — étape suivante après init
- terraform providers — lister les providers après init
- Backend — Configuration et option — configuration du backend
- terraform state pull et push — gestion manuelle du state distant