Was werden wir abdecken??
In diesem Leitfaden werden wir sehen, wie wir eine AWS RDS -DB -Instanz mit Terraform bereitstellen können. Beginnen wir zunächst mit der Installation von Terraform auf Ubuntu 20.04.
Terraform installieren
Hashicorp bietet das offizielle Terraform -Paket für Ubuntu/Debian, Centos/Rhel, Fedora und Amazon Linux. Darüber hinaus hält es auch vorgefertigte Binärdatoren und kann auch aus der Quelle zusammengestellt werden. Für diesen Handbuch verwenden wir das Standardpaket des Debian -Paket -Repositorys, um Terraform auf Ubuntu 20 zu installieren.04.
Schritt 1. Zuerst installieren gnupg, Software-Properties-Common- und Curl-Pakete, um die GPG-Signatur von Hashicorp zu überprüfen und das erforderliche Repository zu installieren:
$ sudo APT-Get Update && sudo apt-Get Install -y GNUPG Software-Properties-Common Curl
Schritt 2. Jetzt fügen Sie die hinzu Hashicorp GPG Taste mit dem Befehl:
$ curl -fssl https: // apt.Veröffentlichungen.Hashicorp.com/gpg | sudo apt-key add -
Schritt 3. Fahren Sie fort, indem Sie das erforderliche Repository hinzufügen:
$ sudo apt-add-repository "Deb [arch = amd64] https: // apt.Veröffentlichungen.Hashicorp.com $ (lsb_release -cs) main "
Schritt 4. Fügen Sie schließlich den Befehl Update aus, um das Repository hinzuzufügen und Terraform zu installieren:
$ sudo apt-Get Update && sudo apt-Get Installieren Sie Terraform
Schritt 5. Überprüfen Sie, ob Terraform durch Ausführen des Befehls installiert ist:
$ terraform -version
Aufbau der AWS -RDS -Infrastruktur mit Terraform
Nachdem wir Terraform auf unserer lokalen Maschine installiert haben, können wir unsere Aufgabe, mit AWS zu arbeiten, fortsetzen. Wie bereits erwähnt, verwendet Terraform mehrere Konfigurationsdateien für Bereitstellungsressourcen, und jede dieser Dateien muss in ihrem jeweiligen Arbeitsordner/Verzeichnis platziert werden. Lassen Sie uns zu diesem Zweck ein Verzeichnis erstellen:
Schritt 1. Erstellen Sie einen Ordner für Ihre Konfigurationsdateien und ändern Sie das Verzeichnis in diesen Ordner:
$ mkdir linuxHint-terraform && cd linuxHint-terraform
Schritt 2. Mach ein 'hauptsächlich.tf'Datei, die die Definition für unsere Infrastruktur enthalten:
$ nano main.tf
Stellen Sie nun die folgende Konfiguration hinein:
Terraform
fordert_providers
AWS =
Source = "Hashicorp/AWS"
Version = "~> 3.27 "
fordern_version = "> = 0.14.9 "
Anbieter "AWS"
Region = "US-West-2"
Access_key = "Ihr Zugriffsschlüssel"
secry_key = "dein sekret-key"
Ressource "aws_db_instance" "rds_instance"
Allocated_storage = 20
identifier = "rds-terraform"
storate_type = "gp2"
Engine = "MySQL"
motor_version = "8.0.27 "
instance_class = "db.t2.Mikro"
name = "Ihr DB-Name"
userername = "Your-DB-Username"
password = "Ihr Passwort"
öffentlich_ACCESSIBLE = True
Skip_final_snapshot = true
Tags =
NAME = "BeispielPlerDSServerInstance"
Diese Datei enthält die gesamte Konfiguration, die mithilfe von Terraform bereitgestellt werden soll. Ersetzen Sie einfach den fetthaltigen Text durch Ihre eigenen Konfigurationsdetails. Lassen Sie uns jeden der in der obigen Datei verwendeten Abschnitte untersuchen:
1. Terraform: Es definiert die Terraformeinstellungen. Der 'erforderliche Anbieter' definiert den Anbieter, der mit der Terraform verwendet wird, und die "Quelle" ist ein optionaler Parameter für Hostname, einen Namespace und den Anbietertyp. Im obigen Code ist die Quelle als "Hashicorp/AWS" definiert, die wie alle Anbieter aus dem Terraform -Register installiert sind. Der obige Anbieter verweist auf 'Register.Terraform.IO/Hashicorp/AWS '.
Das Versionsattribut definiert die Version des Anbieters, den Sie verwenden möchten.
2. Anbieter: Dies gibt an, mit welcher Cloud -Plattform Sie interagieren werden (AWS, Azure, GCP usw.). Dies kontrolliert auch die Region, in der Sie Ihre Ressourcen und die Sicherheitsanmeldeinformationen für Ihren Benutzer bereitstellen.
3. Ressource: Es umfasst Komponenten, die eine Infrastruktur wie Datenbanken, Speicher, Netzwerk usw. erstellen. Die erste Zeichenfolge, hier “aws_instance„Definiert den Ressourcentyp und der zweite einen benutzerdefinierten Namen, den Sie verwenden möchten. Diese beiden sind kombiniert, um eine eindeutige ID für diese Ressource zu bilden, hier ist esaws_instance.Rds_instance''. Ebenso können wir auch Maschinengrößen, Festplattenbildnamen oder VPC -IDs einbeziehen.
Um Ihre Konfiguration zu validieren oder zu überprüfen, verwenden Sie den Befehl:
$ Terraform Validate
Initialisierung des Terraform -Verzeichnisses
Um den in unserer Konfiguration und anderen Dateien definierten Anbieter herunterzuladen und zu installieren, müssen wir das Verzeichnis mit dieser Datei initialisieren:
$ terraform init
Aus dem obigen Bild unsere drin Der Befehl ist erfolgreich und es werden hier auch einige neue Dateien erstellt. Es gibt auch einen weiteren Befehl "Terraform -Plan", obwohl es nicht obligatorisch ist, ihn zu verwenden, aber zum Beispiel einige Vorteile hat.:
Terraform erwähnt diesen Befehl in seiner Dokumentation nicht, da beim Ausführen des Befehls "Terraform Apply" derselbe Plan erneut präsentiert wird.
Aufbau der Infrastruktur
Verwenden Sie den Befehl, um unsere Infrastruktur aufzubauen:
$ Terraform gelten
Dadurch wird zunächst den Ausführungsplan ausgibt, in dem die Tasks -Terraform beschrieben wird. Danach wird es innehalten und Sie bitten, den Plan zu bestätigen, fortzufahren. Wenn alles so eingestellt ist, wie Sie es gewünscht haben, geben Sie 'Ja' ein, um fortzufahren:
Wenn Sie bereit sind, fortzufahren, geben Sie 'Ja' ein.
Es wird einige Zeit dauern, um den Prozess abzuschließen. Wenn dieser Vorgang abgeschlossen ist, wird die folgende Nachricht angezeigt:
Auf Ihrer AWS -Verwaltungskonsole wird die RDS -Instanz aufgeführt:
Zerstörung der Ressourcen
Wenn Sie fertig sind und die von Ihnen erstellten AWS -Ressourcen nicht mehr benötigen, können Sie sie einfach mit dem Befehl löschen:
$ Terraform zerstören
Abschluss
In diesem Leitfaden haben wir über die Bereitstellung einer RDS -Instanz auf AWS mit Terraform erfahren. Sie können auch versuchen, eine EC2 -Instanz auf die gleiche Weise zu konfigurieren.