Was ist Terraform und wie man es auf AWS EC2 installiert und nutzt
Terraform ist das „Infrastructure as Code (IaC)“-Tool. Es wird verwendet, um Infrastrukturen auf sichere Weise aufzubauen, zu verwalten und zu verändern. wiederholbar Weise.
Es wird verwendet, um Umgebungen mit einer Konfigurationssprache namens HashiCorp Configuration Language (HCL) für menschenlesbare, automatisierte Bereitstellungen zu verwalten.
Terraform kann verwendet werden, um Infrastrukturen in verschiedenen Clouds wie AWS, GCP und anderen zu verwalten. Terraform erstellt eine Statusdatei, die die Quelle der Wahrheit für die Ressourcenkonfigurationen ist. Das bedeutet, dass diese Statusdatei jedes Mal, wenn Ressourcen erstellt werden, mit dem Status der erstellten Ressourcen aktualisiert wird.
In diesem Artikel sehen wir uns die Schritte zur Installation von Terraform auf Ubuntu an und verwenden es, um eine VPC in der AWS Cloud zu erstellen.
Um mehr über Terraform zu erfahren, klicke hier.
Vorraussetzungen
- AWS-Konto (Erstelle wenn du noch keines hast).
- Eine EC2-Instanz (Klicke hier um zu erfahren, wie du eine EC2-Instanz erstellst)
- Root-Zugang zu den Servern.
- ‚access_key‘ & ’secret_key‘ eines AWS IAM Users. (Klickehier, um zu lernen, wie du einen IAM-Benutzer mit’access_key‘ & ’secret_key‘ auf AWS anlegst).
Was wir tun werden
- Terraform installieren
- Terraform Konfigurationsdateien schreiben.
- Eine VPC mit Hilfe der Terraform-Konfigurationsdateien erstellen
- Die erstellte VPC mithilfe von Terraform löschen
Terraform installieren
Die Installation von Terraform ist ziemlich einfach und unkompliziert. Du kannst das passende Paket für dein System hier finden.
Bevor du die Datei herunterlädst, musst du die Pakete „wget“ und „unzip“ installieren, falls sie nicht auf deinem System vorhanden sind.
apt-get update -y
apt-get install wget unzip -y
Erstellen wir ein eigenes Verzeichnis „terraform“ unter „/opt/“, in das wir das Paket herunterladen können
cd /opt/
mkdir terraform
cd terraform/
Lade das Terraform-Paket mit dem Befehl „wget“ herunter und entpacke es.
wget https://releases.hashicorp.com/terraform/0.12.18/terraform_0.12.18_linux_amd64.zip
unzip terraform_0.12.18_linux_amd64.zip
ls -lt
Sobald du das heruntergeladene Paket entpackt hast, siehst du eine Binärdatei „terraform“. Verschiebe diese Binärdatei nach /usr/local/bin/.
Du kannst überprüfen, ob die Installation erfolgreich war oder nicht, indem du den Befehl terraform verwendest und seine Version überprüfst.
mv terraform /usr/local/bin/
terraform -v
Terraform-Konfigurationsdateien schreiben
Erstelle ein eigenes Verzeichnis, in dem du Terraform-Konfigurationsdateien erstellen kannst
mkdir terraform
cd terraform/
Benutze einen Editor deiner Wahl und kopiere die folgenden Konfigurationen, um variables.tf, terraform.tfvars und main.tf zu erstellen
Erstelle ‚main.tf‘, die für die Erstellung einer VPC auf AWS verantwortlich ist. Mit der folgenden Konfiguration werden eine VPC, ein Internet-Gateway, eine Routentabelle, eine Availability Zone und eine Sicherheitsgruppe erstellt. Diese main.tf liest die Werte der Variablen ausvariables.tf undterraform.tfvars.
vim main.tf
provider "aws" { region = "${var.region}" access_key = "${var.access_key}" secret_key = "${var.secret_key}" } resource "aws_vpc" "vpc" { cidr_block = "10.0.0.0/16" } resource "aws_internet_gateway" "gateway" { vpc_id = "${aws_vpc.vpc.id}" } resource "aws_route" "route" { route_table_id = "${aws_vpc.vpc.main_route_table_id}" destination_cidr_block = "0.0.0.0/0" gateway_id = "${aws_internet_gateway.gateway.id}" } data "aws_availability_zones" "available" {} resource "aws_subnet" "main" { count = "${length(data.aws_availability_zones.available.names)}" vpc_id = "${aws_vpc.vpc.id}" cidr_block = "10.0.${count.index}.0/24" map_public_ip_on_launch = true availability_zone = "${element(data.aws_availability_zones.available.names, count.index)}" } resource "aws_security_group" "default" { name = "http-https-allow" description = "Allow incoming HTTP and HTTPS and Connections" vpc_id = "${aws_vpc.vpc.id}" ingress { from_port = 80 to_port = 80 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } ingress { from_port = 443 to_port = 443 protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } }
Erstelle“variables.tf“, die die Deklaration 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" }
Erstelle“terraform.tfvars“, die die Definition der in der obigen Datei definierten Variablen enthält.
vimterraform.tfvars
region = "eu-west-3"
access_key = "AKIAQ6GAIA5XDX32PVJ6"
secret_key = "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"
Jetzt solltest du 3 Dateien haben, nämlichvariables.tf, terraform.tfvars und main.tf
Erstelle eine VPC mit Hilfe der Terraform-Konfigurationsdateien
Der erste Befehl, den du verwenden musst, ist „terraform init“. Dieser Befehllädt die Plugins für die in der Konfiguration verwendeten Provider herunter und installiert sie. In unserem Fall ist es aws.
terraform init
Der zweite Befehl ist „terraform plan“. Dieser Befehl wird verwendet, um die Änderungen zu sehen, die an der Infrastruktur vorgenommen werden.
terraform plan
Der Befehl „terraform apply“ legt die Ressourcen auf den in der Datei main.tf genannten aws an. Du wirst aufgefordert, deine Daten einzugeben, um die Ressourcen zu erstellen.
terraform apply
Du kannst die AWS VPC Konsole aufrufen, um zu überprüfen, ob die VPC erstellt wurde.
Lösche die erstellte VPC mit Terraform
Wenn du weißt, dass du noch weitere Ressourcen benötigst, die du mit der in der Datei main.tf angegebenen Konfiguration erstellt hast, kannst du den Befehl „terraform destroy“ verwenden, um alle diese Ressourcen zu löschen.
terraform zerstören
Fazit
In diesem Artikel haben wir die Schritte zur Installation von Terraform gesehen. Außerdem haben wir die erforderliche Konfiguration für die Erstellung einer VPC und einige andere Ressourcen kennengelernt. Jetzt sind wir auch mit der Deklaration und Definition von Variablen vertraut.