OCI Terraform einrichten
Richten Sie Oracle Cloud Infrastructure-Terraform-Providerskripte ein, die in Terraform Registry dokumentiert sind, um eine Verbindung zu einem OCI-Account herzustellen. Bestätigen Sie das Setup, indem Sie Informationen aus dem Mandanten abrufen.
Zu den wichtigsten Aufgaben gehören:
- Erstellen Sie RSA-Schlüssel.
- Richten Sie Oracle Cloud Infrastructure-Terraform-Providerskripte ein:
- Authentifizieren Sie Ihre Terraform-Skripte.
- Rufen Sie Informationen zu den Availability-Domains im Mandanten ab.

Weitere Informationen finden Sie unter:
Bevor Sie beginnen
Für eine erfolgreiche Ausführung des Tutorials benötigen Sie Folgendes:
- Einen Oracle Cloud Infrastructure-Account. Siehe Kostenlose Oracle Cloud-Promotions anfordern und verwalten.
- Eine MacOS-, Linux- oder Windows-Umgebung:
- MacOS
- Linux (Beliebige Distribution)
- Sie können eine Linux-VM mit einer Compute-Ausprägungen vom Typ Immer kostenlos auf Oracle Cloud Infrastructure installieren. Siehe Free Tier: Apache und PHP auf einer Oracle Linux-Instanz installiert.
- Oracle Cloud Infrastructure Cloud Shell:
- So installieren Sie Linux unter Windows mit WSL (WSL)
- Git für Windows für den Zugriff auf eine Linux-VM.
In diesem Tutorial wird eine Oracle Linux-VM-Umgebung mit einer AMD-Ausprägung als Beispiele verwendet. Sie können jedoch jede in diesem Abschnitt genannte Umgebung verwenden.
1. Vorbereiten
Bereiten Sie die Umgebung zur Authentifizierung und Ausführung von Terraform-Skripten vor. Erfassen Sie außerdem die Informationen, die Ihr Account zur Authentifizierung der Skripte benötigt.
Überspringen Sie das Erstellen von RSA-Schlüsseln, wenn:
- Sie verwenden Cloud Shell oder Resource Manager. Sie sind bereits authentifiziert, wenn Sie sich bei der Oracle Cloud-Konsole anmelden.
- Sie haben bereits RSA-Schlüssel für das Tutorial Ressourcen-Discovery einrichten erstellt.
Sie haben nun die RSA-Schlüssel für die Verbindung mit dem OCI-Account eingerichtet.
Wenn sich Ihr Benutzername in der Gruppe Administrators
befindet, überspringen Sie diesen Abschnitt. Andernfalls bitten Sie den Administrator, die folgende Policy zu Ihrem Mandanten hinzuzufügen:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancy
Mit dieser Berechtigung können Sie alle Ressourcen im Mandanten auflisten.
- Melden Sie sich bei der Oracle Cloud-Konsole an.
- Wählen Sie im Navigationsmenü das Menü Profil
aus, und wählen Sie je nach der angezeigten Option Benutzereinstellungen oder Mein Profil aus.
- Wählen Sie je nach der angezeigten Option Gruppen oder Meine Gruppen aus.
- Kopieren Sie den Namen einer Gruppe, zu der Ihr Benutzername gehört.
- Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
- Wählen Sie das Compartment aus:
<your-tenancy>(root)
- Wählen Sie Policy erstellen aus.
- Geben Sie auf der Seite Policy erstellen die folgenden Werte ein:
- Name:
list-resources
- Beschreibung:
Allow the group <a-group-that-your-username-belongs-to> to list the resources in this tenancy.
- Compartment:
<your-tenancy>(root)
- Name:
- Wählen Sie unter Policy Builder die Option Manuellen Editor anzeigen aus.
- Fügen Sie die folgende Policy ein:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancy
- Wählen Sie Erstellen.
Referenz: Allgemeine Policys
Bereiten Sie die Informationen vor, die Sie zur Authentifizierung Ihrer Terraform-Skripte benötigen, und kopieren Sie die Informationen in einen Notizblock.
2. Skripte erstellen
Erstellen Sie Skripte zur Authentifizierung, zum Abrufen von Daten aus Ihrem Konto und zum Drucken von Ausgaben.
required_providers
-Block hinzu, um die erforderlichen Providerversionen zu deklarieren.Verwenden Sie die folgenden Variablen für die auf API-Schlüssel basierende Authentifizierung:
tenancy_ocid
user_ocid
private_key_path
fingerprint
region
Sie müssen den Provider nicht installieren. Der Provider wird heruntergeladen, wenn Sie die Skripte in diesem Tutorial ausführen.
provider.tf
-Skript authentifiziert, und Sie erhalten Informationen von Ihrem Account.Verwenden Sie in Terraform zum Abrufen von Daten eine Datenquelle. Das Abrufen von Daten aus einer Datenquelle ähnelt der GET-Methode in REST-APIs.
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
availability domains
ein. - Gehen Sie unter Identität zu Datenquellen, und wählen Sie oci_identity_availability_domains aus.
Der Titel der Seite ist der Ressourcentyp:
oci_identity_availability_domains
- Suchen Sie den Namen der Datenquelle im Titel der Seite:
- Datenquelle:
- Suchen Sie im Abschnitt "Argumentreferenz" nach allen Argumenten (Eingaben) mit dem Label (erforderlich):
- compartment_id
- Erstellen Sie einen Datenquellenblock:
- Erklären Sie eine Datenquelle mit dem Schlüsselwort:
data
. - Fügen Sie ein Label für den Datenquellennamen hinzu:
"oci_identity_availability_domains"
- Fügen Sie ein Label Ihrer Wahl für den lokalen Namen hinzu:
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
_
) und Bindestriche (-
) enthalten. Das erste Zeichen darf keine Ziffer sein. - In diesem Tutorial wird der lokale Name
"ads"
verwendet, umdata "oci_identity_availability_domains" "ads"
zu erstellen.
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
- Geben Sie im Codeblock Werte für alle erforderlichen Argumente an.
- Beispiel:
compartment_id = "<some-compartment-ocid>"
- Beispiel:
- Geben Sie für optionale Argumente Werte an, um die Abrufergebnisse einzugrenzen. Nur einige Datenquellen verfügen über optionale Argumente.
- Erklären Sie eine Datenquelle mit dem Schlüsselwort:
Die Datenquelle oci_identity_availability_domains
ruft eine Liste der Availability-Domains ab. In diesem Abschnitt deklarieren Sie einen Ausgabeblock, um die abgerufenen Informationen zu drucken.
- Gehen Sie zu Attributreferenz (oci_identity_availability_domains).Hinweis
Attribute sind die Ausgaben, die Sie für die Datenquelleoci_identity_availability_domains
zurückgeben können. - Suchen Sie nach den Attributen:
- Attribut:
availability_domains:
- Die Liste der Availability-Domains
- Wenn Sie
availability_domains:
ausgeben, erhalten Sie drei Attribute für jede Availability-Domain in der Liste:- compartment_id
- id
- Name
- Attribut:
- Datenquellenausgabeblock erstellen:
- Deklarieren Sie einen Ausgabeblock mit dem Schlüsselwort:
output
- Hinzufügen eines zu druckenden Etiketts zu den Ausgabeergebnissen:
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
_
) und Bindestriche (-
) enthalten. Das erste Zeichen darf keine Ziffer sein. - Beispiel:
"all-availability-domains-in-your-tenancy"
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
- Geben Sie im Codeblock einen Wert für die Datenquellenausgabe mit folgendem Ausdruck ein:
value = data.<data-source-name>.<local-name-for-data-source>.<attribute>
- Beispiel:
value = data.oci_identity_availability_domains.ads.availability_domains
- Deklarieren Sie einen Ausgabeblock mit dem Schlüsselwort:
3. Skripte ausführen
Führen Sie die Terraform-Skripte aus. Nachdem Ihr Account die Skripte authentifiziert hat, ruft Terraform die Availability-Domains des Mandanten ab.
tf-provider
.Sie haben jetzt einen Ordner mit dem Namen .terraform
, der die Plug-ins für den OCI
-Provider enthält.
plan
aus.
terraform plan
Beispielausgabe:
data.oci_identity_availability_domains.ads: Reading...
data.oci_identity_availability_domains.ads: Read complete after 1s [id=xxx]
Changes to Outputs:
+ all-availability-domains-in-your-tenancy = [
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.xxx"
+ name = "QnsC:US-ASHBURN-AD-1"
},
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.yyy"
+ name = "QnsC:US-ASHBURN-AD-2"
},
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.zzz"
+ name = "QnsC:US-ASHBURN-AD-3"
},
]
You can apply this plan to save these new output values to the Terraform state, without changing any real
infrastructure.
- Sie rufen Daten ab, daher zeigt der Plan an, dass Sie nur Ausgaben hinzufügen. Sie fügen keine Ressourcen hinzu, ändern oder zerstören sie.
- Sie verwenden die Datei
output.tf
anstelle der Option-out
, sodass Sie die folgende Meldung ignorieren können:Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
Herzlichen Glückwunsch. Ihr Oracle Cloud Infrastructure-Account kann jetzt Ihre Oracle Cloud Infrastructure Terraform-Providerskripte authentifizieren.
Referenzen:
Bei der Ausführung Ihrer Terraform-Skripte können die folgenden Fehlermeldungen auftreten.
Fehler 401 (Service error: NotAuthenticated)
Eine der folgenden Variablen hat einen falschen Wert:
- Mandanten-OCID
- Benutzer-OCID
- Fingerprint
- RSA-Private Key (Pfad oder Schlüssel)
Client kann nicht erstellt werden, falsche Konfiguration: Es wurde keine richtige Konfiguration für den Private Key gefunden
Die Terraform-Skripte können den privaten RSA-Schlüssel nicht finden.
Kein derartiger Host
Die Regions-ID hat einen falschen Wert.
Verfügbare Providerpakete konnten nicht abgefragt werden
Wenn Sie ein VPN verwenden, überprüfen Sie die Proxyeinstellungen.
Weitere Schritte
Das nächste Tutorial Terraform: Erste Schritte finden Sie unter:
Weitere Informationen zur Entwicklung mit Oracle-Produkten finden Sie auf folgenden Websites: