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.
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 ParameterworkingDirectory
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.
Module
Resource Manager unterstützt die folgenden Terraform-Modulquellen:
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.
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.
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)
Schemadaten
Schemadokumente werden für Terraform-Konfigurationen empfohlen, wenn Resource Manager verwendet wird. Siehe Konsolenseiten mit Schemadokumenten erweitern.