Terraforming v0.10.7Terraforming Fernzustandskonfiguration für Module
ich in einem Prozess am Zusammen setzen Terraforming-Module für unser DevOps Team. Es wird separate Module für jede Komponente geben, die wir verwenden, und wiederum wird ein vollständiger Stapel mit diesen Modulen für unterschiedliche Umgebungen und Anforderungen erstellt.
Die Verzeichnishierarchie ist wie folgt:
Terraform
- modules
- module-1 (main.tf, vars.tf, outputs.tf, backend.tf)
- module-2 (main.tf, vars.tf, outputs.tf, backend.tf)
- module-3 (main.tf, vars.tf, outputs.tf, backend.tf)
...
- environments
- qa (main.tf, vars.tf, outputs.tf, bakend.tf)
- stage (main.tf, vars.tf, outputs.tf, bakend.tf)
- prod (main.tf, vars.tf, outputs.tf, bakend.tf)
In backend.tf Ich habe angegeben Backend als S3 und eine komplette Hierarchie als /resources/mod-1/terraform.tfstate
. Dasselbe gilt für backend.tf in Umgebungen.
Als ich terraform get
und terraform apply
für jede Umgebung geben, wird es alle Module angegeben holen und die Änderungen an AWS-Infrastruktur anwenden und es wird terraform.tfstate dieser env an der angegebenen Stelle in S3 speichern.
Also die Frage ist, wird die terraform.tfstate für alle Module in der Umgebung verwendet werden auch generiert und auf S3 (mit single gelten für env) geschoben werden? Ich habe terraform apply
nicht zu irgendwelchen Modulen laufen lassen.
Wie ich habe einen Plan, einige Daten aus terraform.tfstate verwenden dieser Module von S3 und zur gleichen Zeit mehrere vermeiden wollen geben zu diesen Modulen gilt und einzelne terraform apply
zur Umgebung zu geben. Wie kann dies erreicht werden?
Danke für die ausführliche Antwort! Aber ohne main.tf für ein env was wirst du laufen? 'main.tf' Datei für irgendein env hat alle Module mit Quelle. Also 'main.tf' für envs wird nur eine Liste von Modulen haben (anders als andere' main.tf' von Modulen). Ja, ich verwende AWS und ich möchte S3 als Backend. Aber es gibt einen Fehler in Terraform, der es nicht erlaubt, S3 als Backend zu konfigurieren und während 'terraform init' heißt es' InvalidClientTokenId', obwohl es root-Benutzer ist. –
stellen Sie bitte sicher, dass Sie den AWS API-Schlüssel richtig gesetzt haben (https://www.terraform.io/docs/providers/aws/) – BMW
Ernsthaft, Sir? Wie denkst du, dass ich zu diesem Zeitpunkt erreicht habe, ohne AWS API Keys richtig zu setzen? Bitte konsultieren Sie Terraform Git für offene Probleme. Ich fragte nach Arbeit, wenn überhaupt. (https: // github.com/terraform-providers/terraform-provider-aws/issues/663 # issementcomment-334495683) –