Info zur Konfiguration von Terraform auf UNIX-ähnlichen 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 Linux- oder UNIX-ähnlichen 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 Package in den Pfad /usr/local/bin/.
    Es ist keine weitere Installation erforderlich. Terraform ist jetzt installiert und einsatzbereit.

    Sie können Terraform auch in ein beliebiges anderes Verzeichnis im lokalen System extrahieren. Stellen Sie einfach sicher, dass der Speicherort der PATH-Variablen auf dem System hinzugefügt wird.

  4. Um die Installation zu prüfen und die Version zu prüfen, öffnen Sie ein Terminal, und führen Sie terraform-version aus.
    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 ein Verzeichnis auf Ihrem lokalen System.
  3. Navigieren Sie in das Verzeichnis, in dem sich die Terraform-Module befinden. Führen Sie terraform init aus. 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.

Mit dem Utility ssh-keygen können Sie ein SSH-Schlüsselpaar generieren. Legen Sie keine Passphrase für Ihren SSH-Schlüssel fest.

  • Um ein SSH-Schlüsselpaar mit dem Utility ssh-keygen zu generieren, geben Sie in einem Terminal 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.

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. Als Sicherheitsmaßnahme sollte dieses SSH-Schlüsselpaar nicht dasselbe sein wie das SSH-Schlüsselpaar, das für den Zugriff auf den Bastion-Host verwendet wird.

Verwenden Sie ssh-keygen auf dem lokalen Host, um ein anderes SSH-Schlüsselpaar zu generieren. Notieren Sie sich den Speicherort des SSH-Schlüsselpaars.

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 generieren.

  1. Erstellen Sie ein ausgeblendetes Verzeichnis im Home-Bereich, um den PEM-Schlüssel zu speichern. Geben Sie Folgendes ein: mkdir ~/.oci
  2. Generieren Sie einen Private Key mit OpenSSL. Denken Sie daran, bei der Generierung des Private Keys 2048 Bit oder höher anzugeben. Geben Sie Folgendes ein: openssl genrsa-out ~/.oci/key_name.pem 2048
  3. Ä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
  4. Als Nächstes verwenden Sie OpenSSL, 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
Sie können den API-Signaturschlüssel an jedem anderen Speicherort Ihrer Wahl speichern. Sie müssen jedoch sicherstellen, dass Sie diese Position notieren.

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. Um den Public Key auf Ihrem lokalen System zu kopieren, geben Sie cat ~/.oci/key_name_public.pem | pbcopy ein.
    Wenn Sie Ihren Schlüssel in einem anderen Verzeichnis gespeichert haben, geben Sie stattdessen den Pfad zu diesem Verzeichnis ein.
  6. 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 in einem Texteditor.
  3. Die Datei env-vars enthält vier 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 im Abschnitt "Public/Private Keys" der Datei env-vars für die Bastion-Hosts und anderen Instanzen den vollständigen Pfad und Dateinamen der entsprechenden SSH-Public und Private Keys In Ihrem lokalen System ein. Der Private Key muss das Format openssh aufweisen.
  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, öffnen Sie ein Terminal, und navigieren Sie zu dem Verzeichnis, in dem sich die Terraform-Module befinden. Geben Sie Folgendes ein: source ./env-vars

Terraform-Konfiguration prüfen

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

  • Navigieren Sie anschließend zu dem Verzeichnis, 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.