Informationen zur Konfiguration von Terraform auf Windows-Systemen

Um Terraform zur Erstellung von Oracle Cloud Infrastructure-Komponenten zu verwenden, müssen Sie Terraform herunterladen und installieren. Außerdem laden Sie die Terraform-Module herunter, die die Konfigurationsdateien erstellen, mit denen Sie die erforderlichen Infrastrukturkomponenten erstellen.

Das System, in dem Sie Terraform installieren und die Teraform-Module speichern, kann entweder On Premise oder in der Cloud sein. Der Verweis wird als lokales System oder vom lokalen Host vorgenommen.

Bevor Sie Terraform ausführen:

  • Generieren Sie ein SSH-Schlüsselpaar, mit dem Sie auf Ihre Compute-Instanzen zugreifen können

  • API-Signaturschlüssel generieren, der zur Authentifizierung der von Terraform erstellten API-Aufrufe verwendet wird

  • Umgebungsvariablen festlegen, die von Terraform zur Authentifizierung des Zugriffs und der Ausführung seiner Pläne verwendet werden

Nachdem Sie diese Schritte ausgeführt haben, können Sie die Terraform-Konfigurationsdateien anwenden, um Ihre Infrastrukturkomponenten auf Oracle Cloud Infrastructure zu erstellen.

Terraform installieren

Um Terraform auf einem Windows-System zu installieren, laden Sie das entsprechende Package von der Terraform-Website herunter.

  1. Gehen Sie zu https://www.terraform.io/downloads.html .
  2. Laden Sie das entsprechende Package auf Ihr lokales System herunter.
  3. Extrahieren Sie das Paket in den Ordner C:\Program Files (x86).
    Dieser Pfad wird als Beispiel verwendet. Sie können jedoch auch die ausführbare Terraform in einem anderen Verzeichnis in Ihrem lokalen System speichern.
  4. Aktualisieren Sie die Pfadumgebungsvariable, um den Ordner einzuschließen, in dem die ausführbare Terraform-Datei gespeichert ist.
    1. Gehen Sie zur Systemsteuerung.
    2. Klicken Sie auf System.
    3. Klicken Sie auf einem Windows 10-System auf Erweiterte Systemeinstellungen. Diese Option kann in verschiedenen Versionen von Windows variieren.
      Die Registerkarte "Erweitert " des Fensters "Systemeigenschaften" wird angezeigt.
    4. Klicken Sie unten im Fenster auf Umgebungsvariablen .
      Das Fenster "Umgebungsvariablen " wird angezeigt.
    5. Klicken Sie im Bereich "Systemvariablen " auf Pfad und dann auf Bearbeiten.
    6. Klicken Sie auf Neu. Fügen Sie den Pfad zu dem Ordner hinzu, in dem die ausführbare Terraform-Datei gespeichert ist.
    7. Klicken Sie auf OK , um die Änderungen zu speichern, und klicken Sie dann auf OK , um die Fenster Umgebungsvariablen zu beenden. Klicken Sie dann erneut auf OK , um das Fenster "Systemeigenschaften" zu schließen.
  5. Um die Installation zu prüfen und die Version zu prüfen, starten Sie Windows PowerShell, und geben Sie terraform-version ein.
    Die in der Ausgabe angezeigte Terraform-Version wird angezeigt. Beispiel: Terraform v0.11.8

Terraform-Module herunterladen

Laden Sie die Terraform-Module herunter, um mit dem Erstellen von Infrastrukturkomponenten in Oracle Cloud Infrastructure mit Terraform zu beginnen.

  1. Mit Git oder einem Webbrowser können Sie die Terraform-Module auf Ihrem lokalen System klonen oder herunterladen. Klicken Sie auf Code herunterladen in der linken Navigation für den Link zum Git-Repository.
  2. Dekomprimieren oder extrahieren Sie die Terraform-Module in einen beliebigen Ordner auf Ihrem lokalen System.
  3. Starten Sie Windows PowerShell, und navigieren Sie in den Ordner, in dem sich die Terraform-Module befinden. Geben Sie terraform init ein. Dadurch wird auch der Oracle Cloud Infrastructure-Provider für Terraform heruntergeladen.
    Terraform initialisiert die Module zusammen mit dem OCI-Provider-Plug-in. Wenn die Initialisierung abgeschlossen ist, wird die Meldung Terraform has been successfully initialized! angezeigt.

SSH-Schlüsselpaar generieren, um auf die Bastion-Hosts zuzugreifen

Mit einem SSH-Schlüsselpaar können Sie sicher auf Instanzen zugreifen, die in öffentlichen Subnetzen erstellt werden. Sie generieren ein SSH-Schlüsselpaar auf dem lokalen Host. Die Terraform-Module fügen dann den SSH-Public Key den Bastion-Hosts hinzu. Wenn Sie über das öffentliche Internet eine Verbindung zum Bastion-Host herstellen müssen, geben Sie den SSH-Private Key an, um den Zugriff zu authentifizieren.

Sie können ein SSH-Schlüsselpaar mit PuTTYgen generieren. Legen Sie keine Passphrase für Ihren SSH-Schlüssel fest.

  1. Starten Sie PuTTYgen.
  2. Übernehmen Sie den Standardschlüsseltyp von SSH-2 RSA , und legen Sie die Anzahl der Bit in einem generierten Schlüssel auf 2048 fest, wenn er nicht bereits festgelegt ist.
  3. Klicken Sie auf Generieren , und bewegen Sie die Maus in den leeren Bereich, um eine zufällige Auswahl zu generieren.
    Der Schlüssel wird generiert, und sein Wert wird unter Öffentlicher Schlüssel zum Einfügen in die OpenSSH authorized_keys-Datei angezeigt.
  4. Klicken Sie auf Private Key speichern. Sie werden aufgefordert, das Speichern des Schlüssels ohne eine Passphrase zu bestätigen. Klicken Sie auf Ja. Sie können diesen Schlüssel an jedem Ort speichern. Sie können ihn jedoch zur Vereinfachung in demselben Ordner speichern, in dem sich Ihre Terraform-Module befinden.
  5. Um den Public Key zu speichern, wählen Sie dann den gesamten generierten Schlüssel, der im Public Key zum Einfügen in das OpenSSH authorized_keys-Dateifeld angezeigt wird, kopieren Sie ihn, und fügen Sie ihn in eine Textdatei ein. Speichern Sie diese Datei in demselben Verzeichnis wie der Private Key. Verwenden Sie die Schaltfläche Public Key speichern nicht, weil der Schlüssel nicht im OpenSSH-Format gespeichert wird.
Sie haben jetzt Ihr SSH-Schlüsselpaar in Ihrem lokalen System generiert und gespeichert. Stellen Sie sicher, dass Sie den Speicherort des Schlüsselpaares notieren.

SSH-Schlüsselpaar für den Zugriff auf andere Instanzen generieren

Bastion-Hosts werden verwendet, um die SSH-Weiterleitung an andere Instanzen zu aktivieren, die keine öffentlichen IP-Adressen haben und den Zugriff über das öffentliche Internet nicht zulassen. Um sicher von dem Basishost auf andere Instanzen zuzugreifen, verwenden Sie ein SSH-Schlüsselpaar, bei dem der auf Instanzen in privaten Subnetzen gespeicherte Public Key mit einem Private Key übereinstimmt, der auf dem lokalen Rechner gespeichert ist.

Das SSH-Schlüsselpaar, mit dem der Zugriff vom Bastion-Host auf andere Instanzen aktiviert wird, muss mit einem Utility wie OpenSSL oder ssh-keygen. generiert werden. Sie können kein SSH-Schlüsselpaar verwenden, das unter Windows mit PuTTY generiert wurde, da das von PuTTY verwendete .ppk-Format auf Oracle Linux oder anderen UNIX-ähnlichen Betriebssystemen nicht unterstützt wird. Beachten Sie, dass der Basishost, der den SSH-Datenverkehr an andere Instanzen weiterleitet, ein Oracle Linux-Image verwendet.

  1. Git-Bash starten.
  2. Geben Sie Folgendes ein: ssh-keygen-t rsa-N ""-b 2048-C "<key_name>"-f <path/root_name>
    In diesem Befehl:
    • -t rsa gibt an, dass der Schlüssel mit dem RSA-Algorithmus generiert werden soll.

    • -N "" gibt die Passphrase an, die Sie mit diesem Schlüssel verknüpfen möchten. Geben Sie keine Anführungszeichen ein. Der Schlüssel wird ohne eine Passphrase erstellt.

    • -b 2048 gibt an, dass Sie einen 2048-Bit-Schlüssel generieren möchten. Dies ist der Standardwert und entspricht ebenfalls dem empfohlenen Mindestwert.

    • -C "<key_name>" gibt den Namen dieses Schlüsselpaares an.

    • -f <path/root_name> gibt den Speicherort des Schlüssels und den Root-Namen für den öffentlichen und privaten Schlüssel an. Der Public Key hat .pub an den Root-Namen angehängt.

Das SSH-Schlüsselpaar wird generiert und im angegebenen Verzeichnis gespeichert. Notieren Sie sich dieses Verzeichnis.

API-Signaturschlüssel generieren

Sie müssen ein RSA-Schlüsselpaar im PEM-Format "Privacy Enhanced Mail (Privacy Enhanced Mail)" angeben, um Ihr Terraform-Skript mit Oracle Cloud Infrastructure zu authentifizieren. Beachten Sie, dass dieser API-Signaturschlüssel nicht mit dem SSH-Schlüsselpaar identisch ist, das Sie für den Zugriff auf Ihre Instanzen verwenden. Sie können dieses Schlüsselpaar mit OpenSSL in Git Bash generieren. Sie sollten bereits Git Bash im lokalen System installiert haben.

  1. Git-Bash starten.
  2. Erstellen Sie einen ausgeblendeten Ordner zum Speichern des PEM-Schlüssels. Sie können den PEM-Schlüssel an einem beliebigen Ort speichern. Für eine Vereinfachung können Sie diesen Ordner unter dem Ordner erstellen, in dem Terraform-Module gespeichert sind. Stellen Sie sicher, dass Sie den Speicherort des Schlüsselpaares notieren. Navigieren Sie zu diesem Speicherort, und geben Sie Folgendes ein: mkdir ./.oci
  3. Um den API-Signaturschlüssel zu erstellen, geben Sie openssl genrsa-out ./.oci/key_name.pem 2048 ein.
  4. Ändern Sie die Berechtigungen für den Private Key, um sicherzustellen, dass nur Sie den Private Key lesen können. Geben Sie Folgendes ein: chmod go-rwx ./.oci/key_name.pem
  5. Um den Public Key für den angegebenen Private Key zu generieren, geben Sie Folgendes ein: openssl rsa-pubout-in ./.oci/key_name.pem-out ./.oci/key_name_public.pem
Der Signaturschlüssel für die öffentliche und private API wird im angegebenen Ordner gespeichert.

API-Signaturschlüssel mit der Konsole hochladen

Nachdem Sie einen API-Signaturschlüssel generiert haben, müssen Sie den Public Key für den verknüpften Benutzer in Oracle Cloud Infrastructure hochladen. Wenn Sie zum ersten Mal einen API-Signaturschlüssel hochladen, müssen Sie die Konsole verwenden. Danach können Sie auch mit der API einen API-Schlüssel hochladen.

  1. Melden Sie sich bei der Oracle Cloud Infrastructure-Konsole an.
  2. Klicken Sie auf Identität und dann auf Benutzer.
  3. Klicken Sie auf den Benutzer, dem Sie den API-Signaturschlüssel hinzufügen möchten.
  4. Klicken Sie auf der Seite "Benutzerdetails" auf Public Key hinzufügen.
  5. Starten Sie auf Ihrem lokalen System den Git-Bash. Navigieren Sie zu dem Ordner, in dem Sie das Signaturschlüsselpaar der API gespeichert haben.
  6. Geben Sie Folgendes ein, um den Public Key zu kopieren: cat ./key_name_public.pem. Der Public Key-Wert wird angezeigt. Kopieren Sie diesen Wert, einschließlich der Zeilen-----BEGIN PUBLIC KEY----- und -----END PUBLIC KEY-----.
  7. Fügen Sie In der Konsole den Public Key-Wert ein, und klicken Sie auf Hinzufügen.

Umgebungsvariablen festlegen

Mit den hier bereitgestellten Terraform-Modulen können Sie Umgebungsvariablen festlegen, indem Sie die erforderlichen Werte in einer Textdatei angeben. Sie können die Datei dann einfach als Quelle definieren, um sicherzustellen, dass alle erforderlichen Umgebungsvariablen ordnungsgemäß festgelegt werden.

Bevor Sie beginnen, melden Sie sich bei der Oracle Cloud Infrastructure-Konsole an. Sie finden die folgenden Informationen mit der Konsole.

  • Die Mandanten-Oracle Cloud Infrastructure-ID (OCID)

  • Benutzer-OCID

  • Der Fingerprint des API-Signaturschlüssels, den Sie verwenden möchten

  • Die Region

  • Die Compartment-OCID

Stellen Sie außerdem sicher, dass Sie den Speicherort, in dem der API-Signaturschlüssel und das SSH-Schlüsselpaar im lokalen System gespeichert sind, kennen.

  1. Navigieren Sie auf dem lokalen System zu dem Verzeichnis, in dem sich die Terraform-Module befinden.
  2. Öffnen Sie die Datei env-vars.ps1 in einem Texteditor.
  3. Die Datei env-vars enthält mehrere Abschnitte. Beginnen Sie mit dem Abschnitt "Authentifizierungsdetails".
    1. Geben Sie die Mandanten-OCID ein. Die Mandanten-OCID finden Sie unten in der Oracle Cloud Infrastructure-Konsole. Es handelt sich um eine Zeichenfolge wie die Folgenden: ocid1.tenancy.oc1..aaaaa.... Fügen Sie diesen Wert in die Datei env-vars ein.
    2. Geben Sie die Benutzer-OCID ein. Um Ihren Benutzer OCID zu finden, klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Identität und dann auf Benutzer. Die Liste der Benutzer wird zusammen mit dem Benutzer-OCID angezeigt. Klicken Sie auf Kopieren unter dem Benutzernamen, um die erforderliche Benutzer-OCID zu kopieren. Fügen Sie diesen Wert in die Datei env-vars ein.
    3. Geben Sie den Fingerprint des API-Signaturschlüssels ein. Klicken Sie In der Oracle Cloud Infrastructure-Konsole auf der Seite Benutzer auf den Benutzer, um die Seite mit den Benutzerdetails anzuzeigen. Kopieren Sie den API-Schlüssel-Fingerprint aus dem im Abschnitt "API-Schlüssel" aufgelisteten Schlüssel . Fügen Sie diesen Wert in die Datei env-vars ein.
    4. Geben Sie den vollständigen Pfad und Dateinamen des privaten API-Schlüssels auf Ihrem lokalen System ein.
  4. Geben Sie im Abschnitt "Bereich" der Datei env-vars den Bereich ein, In dem Sie die Infrastrukturkomponenten erstellen möchten. Die Region, die Sie aktuell anzeigen, wird oben in der Oracle Cloud Infrastructure-Konsole angezeigt. Sie können auch die Konsole verwenden, um andere Regionen zu suchen, auf die Sie Zugriff haben.
  5. Geben Sie im Abschnitt "Compartment" der Datei env-vars das Compartment OCID des Compartments ein, In dem Sie die Infrastrukturkomponenten erstellen möchten. Stellen Sie sicher, dass der Benutzer, den Sie vorher angegeben haben, zu einer Gruppe gehört, die die erforderlichen Berechtigungen für das hier angegebene Compartment hat. Um die Compartment-OCID zu finden, gehen Sie zur Oracle Cloud Infrastructure-Konsole. Klicken Sie auf Identität und anschließend auf Compartments. Die Liste der Compartments wird zusammen mit dem Compartment-OCID angezeigt. Klicken Sie auf Kopieren unter dem Compartment-Namen, um die erforderliche Compartment-OCID zu kopieren. Fügen Sie diesen Wert in die Datei env-vars ein.
  6. Geben Sie In den Abschnitten mit den Public/Private Keys der Datei env-vars den vollständigen Pfad und Dateinamen des SSH-Public Keys und den SSH-Private Key auf dem lokalen System ein. Stellen Sie sicher, dass die Public und Private Keys, die Sie für die Bastion-Hosts angeben, das Schlüsselpaar sind, das Sie mit PuTTY erstellt haben, und die Schlüssel, die Sie für die anderen Instanzen angeben, das Schlüsselpaar sind, das Sie mit ssh-keygen. erstellt haben.
  7. Prüfen Sie, ob Sie alle Werte korrekt eingegeben haben. Wenn Sie Werte weggelassen haben, werden Sie zur Eingabe aufgefordert, wenn Sie Terraform ausführen. Wenn Sie falsche Werte angegeben haben, tritt ein Fehler in Terraform auf. Wenn Sie sicher sind, dass alle Werte korrekt sind, speichern und schließen Sie die Datei env-vars.
  8. Um die in der Datei env-vars angegebenen Umgebungsvariablen festzulegen, starten Sie Windows PowerShell, navigieren zu dem Ordner, in dem sich die Terraform-Module befinden, und geben Sie Folgendes ein: env-vars.ps1
    Dadurch wird die Datei env-vars.ps1 ausgeführt, die alle in dieser Datei für die aktuelle Session angegebenen Variablen festlegt.
  9. Um zu prüfen, ob die Umgebungsvariablen festgelegt wurden, geben Sie dir env: ein.
    Hier werden alle Umgebungsvariablen aufgeführt. Sie können die TF_VAR-Variablen anzeigen, um zu prüfen, ob ihre Werte wie erwartet festgelegt wurden.

Terraform-Konfiguration prüfen

Nachdem Sie alle erforderlichen Umgebungsvariablen festgelegt haben, prüfen Sie, ob Sie bereit sind, Terraform auszuführen.

  • Starten Sie Windows PowerShell, und navigieren Sie zu dem Ordner, in dem sich die Terraform-Module befinden. Geben Sie Folgendes ein: terraform plan
    In der Ausgabe dieses Befehls wird der Ausführungsplan aller Konfigurationen in allen Modulen in dem aktuellen Verzeichnis angezeigt. In dieser Ausgabe werden die Aktionen beschrieben, die Terraform ausführen wird, um die aktuelle Infrastruktur entsprechend den Konfigurationen zu ändern. Wenn aktuell keine Komponenten erstellt wurden, wird in der Ausgabe die Liste der Komponenten angezeigt, die erstellt werden, wenn Sie terraform apply ausführen. Dieser Befehl erstellt keine Komponenten und kann sicher ausgeführt werden, wenn Sie nur überprüfen möchten, ob die Konfiguration erfolgreich war und alle erforderlichen Authentifizierungswerte ordnungsgemäß in den entsprechenden Umgebungsvariablen gespeichert wurden.