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 erstellen. 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 Ihrer eigenen Terraform-Konfigurationsdatei haben Sie auch die Möglichkeit, eine Terraform-Konfiguration aus einem vorhandenen Compartment mit Ressourcen-Discovery oder einer Beispiellösung 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 Konfigurationen erstellen 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

Wir empfehlen, ein Schemadokument mit Ihrer Terraform-Konfiguration zu verwenden, um die Benutzereingabe in der Oracle Cloud Infrastructure-Konsole zu erleichtern.

Resource Manager hat keine Anforderungen für Variablen in Terraform-Konfigurationen. Resource Manager unterstützt das native Terraform-Verhalten für das Handling 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 Terraform-Host von Resource Manager hinzugefügt. Beispiel: Das in einem Stack für eine bestimmte VCN-Variable angegebene VCN wird als Umgebungsvariable hinzugefügt.

Hinweis

Wenn in der Terraform-Konfiguration definiert, werden die folgenden Variablen automatisch mit Werten auf den Konsolenseiten gefüllt, die zum Erstellen und Bearbeiten des Stacks verwendet werden. Die Werte des Stacks werden verwendet, wenn Sie die Terraform-Aktionen Planen, Anwenden und Löschen 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 bestimmte ältere Stacks nicht aktualisiert sind, werden sie von 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 finden Sie unter Letzte 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 die 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.

  • Quellcodekontrollsystem, z.B. Git

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

  • Vorlage (vorgefertigte Terraform-Konfiguration von Oracle oder eine private Vorlage)
  • Vorhandenes Compartment (Ressourcen-Discovery)