Terraform

So verwenden Sie Terraform mit der Google Cloud Platform?

So verwenden Sie Terraform mit der Google Cloud Platform?
Terraform ist ein Tool zur einfachen Verwaltung von Infrastrukturen als Codes. Es wurde von HashiCorp als Open-Source-Projekt für Cloud-Entwickler entwickelt, um ihre Infrastruktur in sehr hoher Sprache (HCL) zu verwalten. Der größte Vorteil dieses Tools besteht darin, dass es die wichtigsten Infrastrukturdienste wie AWS, OpenStack, Vultr, Digital Ocean, Google Cloud abstrahiert und Entwicklern ermöglicht, ihre Konfiguration in einem einzigen Standardformat zu vereinheitlichen. Darüber hinaus sind mit Terraform auch Automatisierung und Detailausführung möglich. Es ist auf Windows-, Linux- und MacOS-Plattformen verfügbar und kann mit jeder größeren Cloud-Plattform mit moderaten technischen Kenntnissen verwendet werden.

In dieser Anleitung wird gezeigt, wie Sie Terraform mit der Google Cloud-Plattform verwenden. In dieser Anleitung wird davon ausgegangen, dass der Benutzer über ein Konto auf der Google Cloud-Plattform verfügt und es einsatzbereit ist. Wenn nicht, können Sie problemlos ein kostenloses Testkonto für ein Jahr erstellen. Für den Zugriff auf die Konsole von Google Cloud muss jedoch eine gültige Kreditkartennummer angegeben werden. Stellen Sie daher sicher, dass es behandelt wurde, bevor Sie fortfahren.

Anforderungen und Bedingungen

Die Google Cloud-Plattform besteht aus einer großen Anzahl von Diensten; Daher ist es schwierig, sie alle in einem einzigen Leitfaden abzudecken. Daher behandelt dieser Leitfaden nur den Abschnitt zu Google VM-Instanzen. Es zeigt, wie Sie einen Nginx-Webserver in einer Ubuntu-VM-Instanz in der Google Cloud-Infrastruktur installieren.

Da es sich bei der Anleitung um Terraform handelt, muss sie natürlich im System installiert werden. Zusätzlich muss ein SSH-Schlüssel generiert werden, um auf die VM-Instanz zuzugreifen.

So installieren Sie Terraform unter Ubuntu

Terraform kann auf zwei verschiedene Arten installiert werden. Die erste Methode ist die manuelle Methode, bei der der Benutzer sie herunterladen und im System installieren muss. Die alternative und am meisten empfohlene Methode ist die automatisierte Methode, bei der die Terraform mit ein paar Codezeilen heruntergeladen und im System installiert wird. Befolgen Sie die folgenden Befehle, um dies zu tun.

  1. Installieren Sie das Unzip-Paket im System, um das Terraform-Paket nach dem Herunterladen zu extrahieren.
sudo apt-get install entpacken
  1. Laden Sie Terraform über den angegebenen Link herunter und installieren Sie es. Beachten Sie, dass im Moment, in dem der Artikel geschrieben wird, die neueste Version von terraform 0 ist.11.10. In Zukunft könnte die Version eine andere sein. Achten Sie also immer auf die offizielle Website, um Informationen zum neuesten Terraform-Paket zu erhalten.
wget https://releases.hashicorp.com/terraform/0.11.10/terraform_0.11.10_linux_amd64.Postleitzahl
  1. Extrahieren Sie die Terraform in das derzeit aktive Verzeichnis. Standardmäßig ist es das Home-Verzeichnis in Ubuntu.
entpacken terraform_0.11.10_linux_amd64.Postleitzahl
  1. Verschieben Sie die Terraform in den Binärordner. Terraform hat keine Setup-Datei; Daher muss die Binärdatei manuell in die Bin-Datei eingefügt werden.
sudo mv terraform /usr/local/bin/
  1. Verwenden Sie den folgenden Befehl, um über die Befehlszeile auf terraform zuzugreifen, ohne das Verzeichnis anzugeben.
terraform --version

So generieren Sie Ihren eigenen SSH-Schlüssel

Nach der Installation von terraform ist der nächste wichtige Schritt das Generieren Ihres eigenen öffentlichen/privaten SSH-Schlüsselpaars, um mit der zu erstellenden VM-Instanz zu kommunizieren. Das SSH-Schlüsselpaar bietet eine starke Sicherheit gegenüber der herkömmlichen Kennwort-/Benutzernamen-Authentifizierung; Daher wird die Befolgung dieser Option dringend empfohlen, obwohl sie nicht obligatorisch ist.

1. Geben Sie in der Ubuntu-Shell den folgenden Befehl ein, um das SSH-Schlüsselpaar zu generieren.

ssh-keygen

2. Zu Beginn fragt es nach einem Namen für das Schlüsselpaar, dann nach der Passphrase für den ssh-Schlüssel. Der öffentliche Schlüssel wird erstellt als .pub, während der private Schlüssel erstellt wird als . Beide Schlüssel werden im aktuell aktiven Verzeichnis erstellt. Bewahren Sie den privaten Schlüssel an einem sicheren Ort auf, da der Zugriff auf die VM-Instanz wichtig ist.

Konfigurieren Sie die Google Cloud mit Terraform

Sobald die beiden oben genannten Segmente abgeschlossen sind, erstellen Sie ein kostenloses Testkonto in Google Cloud. Da das Erstellen eines Kontos ein einfacher Vorgang ist, wird er hier nicht beschrieben. Nachdem Sie Zugriff auf die Google Cloud-Konsole erhalten haben, führen Sie die folgenden Schritte aus, um Google Cloud mit terraform zu konfigurieren.

  1. Navigieren Sie zu der folgenden URL.
    https://konsole.Wolke.Google.com
  1. Klicken Sie auf die Schaltfläche „Meine Projekte“ in der oberen linken Ecke der Konsole.
  2. Erstellen Sie entweder ein neues Projekt oder verwenden Sie ein vorhandenes Projekt für dieses Handbuch. Zweck des „Projekts“ ist die Gruppierung verschiedener Dienste in der Google Cloud. Das Projekt ist der höchste Knoten dieser Diensthierarchie, und die restlichen Dienste gehen darunter. Ein unter einem Projekt erstellter Dienst ist von einem anderen Projekt aus nicht zugänglich. Nachdem das Projekt erstellt wurde, kopieren Sie die ID und bewahren Sie sie an einem sicheren Ort auf. Im folgenden Screenshot lautet die Projekt-ID charismatische-summe-202020, und es kann ein anderes in Ihrer Cloud-Konsole sein. 
  3. Navigieren Sie zur folgenden Web-URL, um die Datei mit den Anmeldeinformationen im JSON-Format herunterzuladen, um den Benutzer beim Herstellen einer Verbindung mit der Google Cloud-Plattform zu authentifizieren. Dies ist das Administratorkonto; Stellen Sie daher sicher, dass diese Datei mit den Anmeldeinformationen sicher an einem sicheren Ort ist. https://konsole.Wolke.Google.com/apis/credentials/serviceaccountkey 
  4. Erstellen Sie eine Datei und benennen Sie sie in main um.tf. Diese Datei ist die Konfigurationsdatei für terraform. Verwenden Sie dann den folgenden Codeblock als erste Codezeilen. Der Anbietername dient zur Angabe des Anbieters, mit dem eine Verbindung hergestellt werden soll. Terraform unterstützt eine große Anzahl von Cloud-Plattformen; daher muss der Name der Cloud-Plattform explizit angegeben werden. Hier ist es Google, was bedeutet, dass es sich mit der Google Cloud-Plattform verbindet. Abgesehen von der Überschrift gibt es 3 Attribute im Block, das Attribut „credentials“ dient zur Angabe des Namens der oben heruntergeladenen Datei mit den Anmeldeinformationen, der Projektname ist der Ort in der Google Cloud, an dem die VM-Instanz erstellt wird. Die in Schritt 3 erstellte ID wird hier als Projektname verwendet. Region ist der geografische Standort, an dem die VM-Instanz erstellt wird. Es gibt mehrere Regionen. Verwenden Sie diesen Link, um auf alle verfügbaren Regionen zu verweisen. https://cloud.Google.com/appengine/docs/Standortanbieter "google"
    Anmeldedaten = "$file("CREDENTIALS_FILE.json")"
    Projekt     = "PROJECT_NAME"
    Region      = "REGION_NAME"

  1. Verwenden Sie den folgenden Befehl, um Plugins für terraform zu installieren. Der folgende Befehl scannt automatisch die terraform-Konfigurationsdatei und identifiziert die zu installierenden Plugins, zusätzlich lädt er auch die Anbieterinformationen für terraform . herunter. Dieser Leitfaden verwendet die Google Cloud-Plattform. Daher lädt es die Informationen des Google Cloud Terraform-Anbieters herunter. Der Befehl identifiziert den Provider anhand des Namens, der beim Schlüsselwort „provider“ in der terraform-Konfigurationsdatei angegeben ist. Terraform-Initialisierung
  1. Verwenden Sie die folgenden beiden Codeblöcke, um weitere Informationen für die VM-Instanz zu definieren. Von Anfang an verwendet es das Zufalls-ID-Plugin, um eine Zufallszahl mit 8 Ziffern zu generieren, und weist diese Zahl dann der Variablen instance_id zu, um sie als Präfix für den Namen für die VM-Instanz zu verwenden. Im zweiten Codeblock wird eine VM-Instanz mit dem Namen „nucuta-vm“ erstellt-. Der Maschinentyp ist das Serverpaket, das zum Hosten der VM-Instanz verwendet wird. Unter dieser Web-URL finden Sie die verfügbaren Maschinentypen. https://cloud.Google.com/compute/docs/machine-types. Zone ist die genaue Lage der Region. In jeder Region stehen hauptsächlich 3 Zonen zur Verfügung, a, b, c. Jede Zone hat ihre eigene Hardware-/Software-Konfiguration. Verwenden Sie diese Web-URL, um auf alle verfügbaren Zonen und deren Hardwarekonfiguration zu verweisen. https://cloud.Google.com/compute/docs/regions-zones/ Ressource "random_id" "instance_id"
    Byte_Länge = 8

    Ressource "google_compute_instance" "nucuta"
    name = "nucuta-vm-$random_id.Instanz_ID.verhexen"
    machine_type = "f1-micro"
    zone = "asia-süd1-a"
  1. Verwenden Sie den folgenden Codeblock innerhalb des Codeblocks „google_compute_instance“. Es gibt das zu verwendende Betriebssystem an. Verwenden Sie diese Web-URL, um alle verfügbaren Betriebssysteme für die Google Cloud-Plattform zu finden. https://cloud.Google.com/compute/docs/images. Es heißt Bild, weil die Betriebssysteme als „Bild“-Dateien gespeichert sind. Beim Ausführen der terraform-Konfigurationsdatei wird die Image-Datei extrahiert und ihr Betriebssystem in der VM-Instanz wie auf einem normalen Computer installiert. Das Bildattribut hat dieses Format, Bildprojekt/ Bildfamilie. Boot-Diskette
    initialize_params
    image = "ubuntu-os-cloud/ubuntu-1604-lts"

  1. Verwenden Sie den folgenden Code im Codeblock „google_compute_instance“. Es gibt das Startskript an, das auf der neu erstellten VM-Instanz ausgeführt werden soll. Dieses Skript wird ausgeführt, sobald die VM-Instanz erstellt wurde. Im folgenden Beispiel aktualisiert es das lokale Paketinformations-Repository mit den neuesten Informationen, aktualisiert dann alle Pakete mit dist-upgrade und installiert dann das nginx-Paket. Stellen Sie sicher, dass Sie das Flag -y verwenden, um den Prozess nicht interaktiv zu machen, d. h. er wird automatisch ausgeführt und führt den Prozess aus, ohne dass ein Benutzereingriff erforderlich ist. metadata_startup_script = "sudo apt-get -y aktualisieren;
    sudo apt-get -y dist-upgrade ;
    sudo apt-get -y nginx installieren"
  1. Verwenden Sie den folgenden Codeblock im Codeblock „google_compute_instance“. Der folgende Codeblock gibt die Netzwerkschnittstelle an, die verwendet wird, um die aktuelle VM-Instanz mit anderen VM-Instanzen, Geräten und Netzwerken zu verbinden. Der Block Access_config wird verwendet, um der VM-Instanz eine externe IP-Adresse zuzuweisen, um über das Internet darauf zuzugreifen. Netzwerkschnittstelle
    Netzwerk = "Standard"
    access_config

  1. Verwenden Sie abschließend den folgenden Codeblock im Codeblock „google_compute_instance“. Es gibt den Benutzernamen und den öffentlichen SSH-Schlüssel an. Stellen Sie sicher, dass sich der generierte öffentliche SSH-Schlüssel im selben Ordner wie die Terraform-Konfigurationsdatei befindet. Der Benutzername sollte der Name des Kontos sein, von dem aus der SSH-Schlüssel erstellt wurde. Wenn der Name des Kontos beispielsweise root ist, ist sein Benutzername root. Metadaten
    sshKeys = "dilanga:$file("dilanga.Kneipe")"

  1. Der letzte Codeblock sollte so aussehen 
  2. Verwenden Sie den folgenden Codeblock draußen des Codeblocks „google_compute_instance“. Standardmäßig blockiert die VM-Instanz den gesamten ein- und ausgehenden Datenverkehr. Da diese Anleitung einen Webserver erstellt, müssen die Ports 80 und 443 geöffnet werden, damit Benutzer über das Internet darauf zugreifen können. Das name-Attribut erstellt von Anfang an ein Profil in der Google Compute-Firewall für diese Regel, das network-Attribut gibt an, für welche Netzwerkschnittstelle die Regel gilt, allow block lässt die darunter angegebenen Protokolle und deren Ports zu. Das Icmp-Protokoll wird verwendet, um den Webserver anzupingen, um sicherzustellen, dass er für die Öffentlichkeit verfügbar ist. Pinging wird oft von vielen Diensten verwendet, um die Verfügbarkeit einer Website herauszufinden. Ressource "google_compute_firewall" "default"
    name    = "nginx-firewall"
    Netzwerk = "Standard"
     
    ermöglichen
    Protokoll = "tcp"
    Ports    = ["80","443"]

     
    ermöglichen
    Protokoll = "icmp"

  3. Verwenden Sie den folgenden Codeblock draußen von „google_compute_instance“, um die öffentliche IP-Adresse der aktuellen VM-Instanz zu drucken. Ausgabe "ip"
    Wert = "$google_compute_instance.Nucuta.Netzwerkschnittstelle.0.access_config.0.nat_ip"
  4. Verwenden Sie den folgenden Befehl, um die Konfigurationsdatei und die Datei mit den Anmeldeinformationen zu überprüfen. Es zeigt auch eine Vorschau an, wie das Endergebnis aussieht, nachdem die Konfigurationsdatei ausgeführt wurde. Terraform-Plan
  5. Verwenden Sie dann den folgenden Befehl, um die Konfigurationsdatei auszuführen. terraform anwenden
  6. Verwenden Sie nun die öffentliche IP-Adresse in einem beliebigen Webbrowser, um auf den Webserver der VM-Instanz zuzugreifen.
  7. Verwenden Sie den folgenden Befehl, um über SSH auf die VM-Instanz zuzugreifen, um den Server zu verwalten. Stellen Sie sicher, dass sich der private Schlüssel im aktuellen Verzeichnis befindet oder geben Sie den Pfad zum privaten Schlüssel an.
  8. ssh -i @

    Fazit

    Das sollte für den Anfang reichen.  Die vollständige Konfigurationsdatei, main.tf, wird unten gezeigt. Hervorgehobene Texte können entsprechend den Benutzeranforderungen geändert werden.

    Anbieter "google"
    Anmeldedaten = "$file("dilannga_credentials.json")"
    project     = "charismatic-sum-202020"
    region      = "asia-south1"

     
    Ressource "random_id" "instance_id"
    Byte_Länge = 8

     
    Ressource "google_compute_instance" "nucuta"
    name         = "nucuta-vm-$random_id.Instanz_ID.verhexen"
    machine_type = "f1-micro"
    Zone         = "asia-south1-a"
     
    Boot-Diskette
    initialize_params
    image = "ubuntu-os-cloud/ubuntu-1604-lts"


     
    metadata_startup_script = "sudo apt-get -y update; sudo apt-get -y dist-upgrade ;
    sudo apt-get -y nginx installieren"
     
    Netzwerkschnittstelle
    Netzwerk = "Standard"
     
    access_config
     


     
    Metadaten
    sshKeys = "dilanga:$file("dilanga.Kneipe")"


     
    Ressource "google_compute_firewall" "default"
    name    = "nginx-firewall"
    Netzwerk = "Standard"
     
    ermöglichen
    Protokoll = "tcp"
    Ports    = ["80","443"]

     
    ermöglichen
    Protokoll = "icmp"


     
    Ausgabe "ip"
    Wert = "$google_compute_instance.Nucuta.Netzwerkschnittstelle.0.access_config.0.nat_ip"
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...
So erfassen und streamen Sie Ihre Gaming-Sitzung unter Linux
In der Vergangenheit galt das Spielen von Spielen nur als Hobby, aber mit der Zeit verzeichnete die Spieleindustrie ein enormes Wachstum in Bezug auf ...
Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...