Terraform-Konfigurationen für Resource Manager

Prüfen Sie Anforderungen und Empfehlungen für Terraform-Konfigurationen, die mit Resource Manager verwendet werden. Verwenden Sie Terraform und Resource Manager, um Ressourcen mit dem Infrastructure-as-Code-Modell zu installieren, zu konfigurieren und zu verwalten.

Allgemeine Informationen zu Terraform-Konfigurationen finden Sie unter Konfigurationen verfassen. Anweisungen zur Verwendung von Konfigurationen mit Stacks und Jobs finden Sie unter Stacks und Jobs verwalten.

Informationen zu Terraform-Konfigurationsquellen, die mit Resource Manager unterstützt werden, finden Sie unter Speicherort der Terraform-Konfigurationen.

Neben dem Schreiben einer eigenen Terraform-Konfigurationsdatei haben Sie auch die Möglichkeit, eine Terraform-Konfiguration aus einem vorhandenen Compartment mit Resource Discovery oder aus einer Beispielvorlage zu generieren.

Achtung

Geben Sie keine Benutzerzugangsdaten oder andere vertrauliche Informationen in Ihren Terraform-Konfigurationen an.

Anforderungen

Die mit Resource Manager verwendeten Terraform-Konfigurationsdateien müssen die folgenden Anforderungen erfüllen.

Terraform-Provider

Bei Verwendung von Resource Manager ist das Feld region im Block provider "oci" das einzige Pflichtfeld. Weitere Informationen zur Definition von Providern finden Sie unter Anforderungen an Konfigurationsdateien.

Dateistruktur

Resource Manager erfordert die folgende Dateistruktur für die Terraform-Konfiguration:

  • Das Arbeitsverzeichnis muss mindestens eine .tf-Datei enthalten. Das Arbeitsverzeichnis darf kein .terraform-Verzeichnis enthalten.

    Das Arbeitsverzeichnis ist der Pfad, in dem Terraform ausgeführt werden soll. Standardmäßig ist das Arbeitsverzeichnis das Root-Verzeichnis Ihrer Konfiguration (bei einer hochgeladenen Konfiguration wird das Root-Verzeichnis Ihrer .zip-Datei verwendet). Bei Verwendung der API können Sie einen anderen Speicherort für das Arbeitsverzeichnis angeben, indem Sie den Parameter workingDirectory festlegen.

  • Die Konfiguration muss den unter Authoring Configurations angegebenen Richtlinien entsprechen.
  • In der Konfiguration dürfen keine Terraform-Statusdateien (.tfstate) vorhanden sein.
  • Wenn Sie die Konfiguration lokal hochladen möchten, bündeln Sie alle Dateien in eine .zip-Datei.

Variablen

Es wird empfohlen, ein Schemadokument mit Ihrer Terraform-Konfiguration zu verwenden, um die Benutzereingabe in der Oracle Cloud Infrastructure-Konsole zu vereinfachen.

Resource Manager hat keine Anforderungen an Variablen in Terraform-Konfigurationen. Resource Manager unterstützt das native Terraform-Verhalten für die Verarbeitung von Variablen. Terraform legt Variablen aus Ihren Variablendefinitionen fest, die unterstützte Typ-Constraints verwenden. Wenn Sie einen Job ausführen, werden die Variablenwerte des Stacks als Umgebungsvariablen im Resource Manager-Terraform-Host hinzugefügt. Beispiel: Das in einem Stack für eine bestimmte VCN-Variable angegebene VCN wird als Umgebungsvariable hinzugefügt.

Hinweis

Wenn sie in der Terraform-Konfiguration definiert sind, werden die folgenden Variablen automatisch mit Werten auf den Konsolenseiten aufgefüllt, mit denen der Stack erstellt und bearbeitet wird. Die Werte des Stacks werden verwendet, wenn Sie die Terraform-Aktionen Planen, Anwenden und Zerstören auswählen.

  • tenancy_ocid (Mandanten-OCID)
  • compartment_ocid (Compartment-OCID)
  • region (Region)
  • current_user_ocid (OCID des aktuellen Benutzers)

Konfiguration für Drittanbieter

Terraform-Provider von Drittanbietern in Terraform-Konfigurationen referenzieren, die mit Resource Manager verwendet werden.

Standardmäßig rufen neue Resource Manager-Stacks Drittanbieter aus der Terraform-Registry ab. (Wenn nicht aktualisiert, werden bestimmte ältere Stacks aus Resource Manager abgerufen.) Benutzerdefinierte Provider sind auch für neue und aktualisierte Stacks verfügbar.

Wie bei jeder Providerkonfiguration empfehlen wir die Angabe von Versionen. Abhängigkeitssperrdateien werden automatisch für neue und aktualisierte Stacks verwaltet. Provider werden innerhalb der Versions-Constraints der Terraform-Konfiguration aktualisiert. Anweisungen hierzu finden Sie unter Aktuelle Provider abrufen.

Weitere Informationen zum Hinzufügen von Providern zu Terraform-Konfigurationen finden Sie unter Providerkonfiguration.

Beispiel für eine Terraform-Konfiguration für Resource Manager

Das folgende Beispiel zeigt eine Terraform-Konfiguration, die in einer einzelnen Datei enthalten ist. In diesem einfachen Beispiel werden nur ein Terraform-Provider, eine Oracle Cloud Infrastructure-Ressource und ein Variablensatz definiert.



variable "compartment_ocid" {}
variable "region" {}

provider "oci" {
  region = "${var.region}"
}

resource "oci_core_virtual_network" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = "${var.compartment_ocid}"
  display_name = "vcn1"
}

Terraform-Konfigurationen bestehen häufiger aus zwei oder mehr gebündelten Dateien (bei einer hochgeladenen Konfiguration werden die Dateien in einer ZIP-Datei gebündelt). Komplexere Terraform-Konfigurationen mit mehreren Dateien finden Sie in den Beispielen unter Beispiele für den Terraform-Oracle Cloud Infrastructure-Provider.

Tipp

Erstellen Sie schnell Stacks mit OCI-Terraform-Beispielkonfigurationen. Gehen Sie zu Beispiele für Terraform-Oracle Cloud Infrastructure-Provider, navigieren Sie zum Ordner für die gewünschte Konfiguration (z.B. adm), und wählen Sie in der Readme-Datei unter "Magische Schaltfläche" die Schaltfläche In Oracle Cloud bereitstellen aus.

Wo speichern Sie Ihre Terraform-Konfigurationen?

Wenn Sie einen Stack mit Resource Manager erstellen, können Sie Ihre Terraform-Konfiguration aus den folgenden Quellen auswählen.

  • Lokale ZIP-Datei
  • Ordner Lokal
  • Object Storage-Bucket

    Der aktuelle Inhalt des Buckets wird automatisch von jedem Job verwendet, der auf dem zugehörigen Stack ausgeführt wird.

  • Quellcode-Kontrollsystem, wie Git

    Die aktuelle Version Ihrer Konfiguration wird automatisch von jedem Job verwendet, der auf dem verknüpften Stack ausgeführt wird.

  • Vorlage (Vordefinierte Terraform-Konfiguration aus Oracle oder einer privaten Vorlage)
  • Vorhandenes Compartment (Ressourcen-Discovery)