GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen Sie mit Terraform einen S3-Bucket auf AWS

In diesem Artikel zeige ich Ihnen, wie Sie mit Terraform einen S3-Bucket auf AWS erstellen. Bevor Sie fortfahren, gehe ich davon aus, dass Sie mit dem S3-Bucket vertraut sind. Wenn nicht, können Sie hier klicken, um die Schritte zum Erstellen eines S3-Buckets über die AWS-Konsole anzuzeigen.

Voraussetzungen

  1. Grundlegendes Verständnis von Terraform.
  2. Terraform auf Ihrem System installiert.
  3. AWS-Konto (erstellen, falls Sie noch keins haben).
  4. 'access_key' &'secret_key' eines AWS IAM-Benutzers. (Klicken Sie hier, um zu erfahren, wie Sie einen IAM-Benutzer mit „access_key“ und „secret_key“ auf AWS erstellen, )

Was wir tun werden

  1. Terraform-Konfigurationsdateien für S3-Bucket schreiben.
  2. Erstellen Sie mithilfe der Terraform-Konfigurationsdateien einen S3-Bucket.
  3. Löschen Sie den erstellten S3-Bucket mit Terraform.

Terraform-Konfigurationsdateien für S3-Bucket schreiben

Erstellen Sie ein dediziertes Verzeichnis, in dem Sie Terraform-Konfigurationsdateien erstellen können.

Verwenden Sie den folgenden Befehl, um ein Verzeichnis zu erstellen und Ihr aktuelles Arbeitsverzeichnis dorthin zu ändern.

mkdir terraform
cd terraform/

Ich verwende „vim“ als Editor, um in Dateien zu schreiben. Sie können einen Editor Ihrer Wahl verwenden und die folgenden Konfigurationen kopieren und einfügen, um variables.tf, terraform.tfvars und main.tf zu erstellen

Erstellen Sie „main.tf“, das für die Erstellung eines S3-Buckets auf AWS verantwortlich ist. Diese main.tf liest Werte von Variablen aus variables.tf und terraform.tfvars.

vim main.tf
provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}

resource "aws_s3_bucket" "this" {
  bucket                               = "${var.bucket_name}"
  force_destroy                        = "${var.force_destroy}"
  region                               = "${var.region}"
  tags                                 = "${merge(var.tags, map("Name", format("%s", var.bucket_name)))}"
}

Here,

  • bucket:  Der Name des Buckets. Wenn weggelassen, weist Terraform einen zufälligen, eindeutigen Namen zu.
  • force_destroy: Ein boolescher Wert, der angibt, dass alle Objekte aus dem Bucket gelöscht werden sollten, damit der Bucket fehlerfrei zerstört werden kann.
  • region : Die AWS-Region, in der sich dieser Bucket befinden soll.
  • tags: Eine Karte mit Tags, die dem Bucket zugewiesen werden sollen.

Ändern Sie den Wert von „Region“, wenn Sie den Bucket in einer anderen als der von mir angegebenen Region erstellen möchten.

Erstellen Sie 'variables.tf', das die Deklaration und Definition der Variablen enthält.

vim variables.tf
variable "access_key" {
     description = "Access key to AWS console"
}
variable "secret_key" {
     description = "Secret key to AWS console"
}
variable "region" {
     description = "Region of AWS VPC"
}

variable "bucket_name" {
  description = "(Required) Creates a unique bucket name"
  type        = "string"
  default     = "test-bucket-rahul-delete"
}

variable "force_destroy" {
  description = "(Optional) A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error"
  type        = "string"
  default     = true
}

variable "tags" {
  description = "(Optional) A mapping of tags to assign to the bucket"
  type        = "map"
  default     = {"env": "test"}
}

Vergessen Sie nach dem Erstellen von 'variables.tf' nicht, die der Variablen zugewiesenen Werte zu ändern. Sie müssen die hervorgehobenen Werte ändern, da diese spezifisch für meine Umgebung sind. Die restlichen Variablen können Sie unverändert lassen.

Erstellen Sie „terraform.tfvars“, die die Definition der access_key- und secret_key-Variablen enthält, die in der obigen Datei definiert sind, zusammen mit der „region“-Variable.

Die folgenden Schlüssel müssen mit den Schlüsseln Ihres IAM-Benutzers geändert werden.

vim terraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XFLXF6HOV"
secret_key = "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"

Jetzt sollten Sie 3 Dateien haben, nämlich variables.tf, terraform.tfvars und main.tf

Erstellen Sie einen S3-Bucket mit den Terraform-Konfigurationsdateien

Bevor Sie die folgenden Befehle ausführen, vergewissern Sie sich, dass Sie den gültigen access_key und secret_key konfiguriert haben.

Der erste zu verwendende Befehl ist „terraform init“. Dieser Befehl lädt Plugins für Anbieter, die in der Konfiguration verwendet werden, herunter und installiert sie. In unserem Fall ist es AWS.

 terraform init

Der zweite zu verwendende Befehl ist „terraform plan“. Dieser Befehl wird verwendet, um die Änderungen anzuzeigen, die an der Infrastruktur stattfinden werden.

 terraform plan

Der Befehl „terraform apply“ erstellt die in der main.tf-Datei erwähnten Ressourcen auf der AWS. Sie werden aufgefordert, Ihre Eingaben zum Erstellen der Ressourcen zu machen.

terraform apply

Wenn Sie den obigen Befehl ausführen, können Sie nach erfolgreichem Abschluss sehen, dass 1 neue Ressource hinzugefügt und 0 vernichtet wurde.

Sie können zur AWS S3-Konsole gehen, um zu überprüfen, ob der S3-Bucket erstellt wurde oder nicht.

S3-Bucket mit Terraform löschen

Wenn Sie eine Ressource, die Sie mit der in der main.tf-Datei erwähnten Konfiguration erstellt haben, nicht mehr benötigen, können Sie alle diese Ressourcen mit dem Befehl „terraform Destroy“ löschen. Hier wird der S3-Bucket beim Ausführen des folgenden Befehls gelöscht.

terraform destroy

Im obigen Screenshot können Sie sehen, dass die Ressource zerstört wurde.

Schlussfolgerung

In diesem Artikel haben wir die Schritte zum Erstellen eines S3-Buckets mit Terraform gesehen. Wir haben auch gesehen, wie der von uns erstellte Bucket mit nur einem Befehl gelöscht werden kann.


Linux
  1. Erstellen Sie mit Terraform eine Virtual Private Cloud (VPC) auf AWS

  2. Erstellen Sie mit Terraform eine EC2-Instance auf AWS

  3. So erstellen Sie eine RDS-Instance auf AWS mit Terraform

  4. So erstellen Sie eine IAM-Rolle in AWS mit Terraform

  5. So erstellen Sie einen Linux-Benutzer mit Ansible

So erstellen Sie eine SQS-Warteschlange auf AWS

So erstellen Sie eine Amazon AWS EC2-Instanz mit Python Boto3

So erstellen Sie eine RDS-Instanz mit Python Boto3 auf AWS

So erstellen Sie einen S3-Bucket mit Python Boto3 auf AWS

So erstellen Sie eine DynamoDB-Tabelle in AWS

So verwalten Sie Terraform State in einem AWS S3-Bucket