Terraform-Statussperren mit DynamoDB

8

Mit unserem Terraform-Layout können wir Terraform für viele aws (über 100) Konten ausführen und die Terraform-Statusdatei remote in einem zentralen S3-Bucket speichern.

Die neue Sperrfunktion klingt nützlich und möchte sie implementieren, aber ich bin unsicher, ob ich eine zentrale DynamoDB-Tabelle im selben Konto wie die unseres S3-Buckets verwenden kann oder ob ich in jedem eine DynamoDB-Tabelle erstellen muss die AWS-Konten?

    
user1619524 04.04.2017, 14:21
quelle

2 Antworten

6

Sie können eine einzelne DynamoDB-Tabelle verwenden, um die Sperrung für die Statusdatei für alle Konten zu steuern. Dies würde funktionieren, auch wenn Sie in mehrere S3 Eimer speichern Zustand hatte.

Die DynamoDB Tabelle verkeilt auf LockID , das ist Als BucketName / Pfad festlegen . Also, solange Sie eine einzigartige Kombination von denen haben, werden Sie in Ordnung sein (Sie sollen oder Sie haben größere Probleme mit Ihrer Statusverwaltung).

Natürlich müssen Sie Quer IAM Richtlinien Erstellen von Benutzern in einem Konto Dinge ermöglichen Konto einrichten können Elemente in DynamoDB verwalten.

    
ydaetskcoR 04.04.2017 15:27
quelle
3

Um das Terraform-DynamoDB-Sperren zu verwenden, führen Sie die folgenden Schritte aus

1. Erstellen Sie eine AWS DynamoDB mit Terraform, um den terraform.tfstate zu sperren.

%Vor%

2. Terraform ausführen, um die DynamoDB-Tabelle in AWS zu erstellen

Terraform anwenden

Anwendungsbeispiel

1.Verwenden Sie die DynamoDB-Tabelle, um die Erstellung von terraform.state in AWS zu sperren. Als EC2-Beispiel

%Vor%

Der dynamodb_table-Wert muss mit dem Namen der von uns erstellten DynamoDB-Tabelle übereinstimmen.

2. Initialisieren Sie das Terraform S3- und DynamoDB-Backend

terraform init

3. Starten Sie Terraform, um den EC2-Server zu erstellen.

Terraform anwenden

Um den Code zu sehen, gehen Sie zu Github DynamoDB-Sperrbeispiel

    
Jirawat Uttayaya 05.08.2017 08:57
quelle