Resource Discovery einrichten
Richten Sie die Ressourcen-Discovery ein, um Terraform-Dateien für vorhandene Ressourcen in Ihrem Compartment zu generieren.
Mit dem OCI-Ressourcen-Discovery-Feature können Sie:
- Erstellen Sie in der Konsole Statusdateien für vorhandene Ressourcen, und fügen Sie diese Ressourcen dann einem Terraform-Setup hinzu.
- Kopieren Sie Ihre vorhandene Infrastruktur in einem neuen Mandanten oder einer neuen Region.
- Ermitteln Sie die Statusdrift für aktualisierte Ressourcen.
In diesem Tutorial richten Sie das Ressourcen-Discovery-Feature des Oracle Cloud Infrastructure-Terraform-Providers in Ihrer lokalen Umgebung ein. Um das Setup zu bestätigen, führen Sie die Ressourcen-Discovery aus, um Informationen aus Ihrem Mandanten abzurufen und ein entsprechendes Skript zu erstellen.
Zu den wichtigsten Aufgaben gehören:
- Erstellen Sie RSA-Schlüssel.
- Installieren Sie die Binärdateien des Terraform-OCI-Providers.
- Richten Sie API-Authentifizierungsvariablen für den Terraform-OCI-Provider ein.
- Authentifizieren Sie die CLI-Befehle des OCI-Providers.
- Erstellen Sie mit dem Feature zur Ressourcen-Discovery ein Skript in Ihrer Umgebung bezüglich der Availability-Domains in Ihrem Mandanten.

Weitere Informationen finden Sie unter Anwendungsfälle und Vorteile.
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:
- Cloud ShellHinweis
Wenn Sie Oracle Cloud Infrastructure Cloud Shell verwenden, ist der OCI-Terraform-Provider bereits installiert, und Sie müssen keine RSA-Schlüssel erstellen. Überspringen Sie diesen Abschnitt, und fahren Sie mit Listen-Policy hinzufügen fort.
- Cloud Shell
- So installieren Sie Linux unter Windows mit WSL (WSL)
- Git für Windows für den Zugriff auf eine Linux-VM.
1. Vorbereiten
Bereiten Sie Ihre Umgebung auf die Authentifizierung und Ausführung von Befehlen zur Ressourcen-Discovery vor. Erfassen Sie außerdem die Informationen, die Ihr Account zur Authentifizierung von Befehlen benötigt.
Sie erstellen RSA-Schlüssel für eine API-Anmeldung bei Ihrem Oracle Cloud Infrastructure-Account.
Wenn Sie Cloud Shell oder Resource Manager verwenden, überspringen Sie das Erstellen der RSA-Schlüssel. Sie sind bereits authentifiziert, wenn Sie sich bei der OCI-Konsole anmelden.
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
Erstellen Sie die Informationen, die Sie zum Authentifizieren der Terraform-OCI-Providerbefehle benötigen, und kopieren Sie sie in Notepad.
Wenn Sie Cloud Shell verwenden, müssen Sie die
<tenancy-ocid>
nur im folgenden Schritt suchen.Wenn Sie Cloud Shell verwenden, überspringen Sie diesen Abschnitt.
Installieren Sie die neueste Version der Terraform-OCI-Providerbinären v4.2+:
2. Authentifizierungsskript erstellen
Erstellen Sie ein Shell-Skript, um den OCI-Providerauthentifizierungsvariablen Authentifizierungsinformationen zuzuweisen. Ihr Oracle Cloud Infrastructure-Account authentifiziert Ihre OCI-Providerbefehle über die Werte, die diesen Parametern zugewiesen sind.
Wenn Sie Cloud Shell oder Resource Manager verwenden, müssen Sie keine Authentifizierung hinzufügen. Fahren Sie mit Abschnitt 3 fort. Ressource suchen.
- Gehen Sie zu Authentifizierung (Ressourcen-Discovery).
- Richten Sie die folgenden Umgebungsvariablen für die auf API-Schlüssel basierte Authentifizierung ein:
- TF_VAR_tenancy_ocid
- TF_VAR_user_ocid
- TF_VAR_fingerprint
- TF_VAR_private_key_path
- TF_VAR_region
In diesem Abschnitt führen Sie die Datei provider-oci.sh
aus, um die Authentifizierungsvariablen des OCI-Providers zu Ihren Umgebungsvariablen hinzuzufügen.
3. Ressource ermitteln
Ermitteln Sie die Availability-Domains in Ihrem Mandanten.
Jeder Mandant verfügt über eine Liste von Availability-Domains. Durch Ermittlung der Availability-Domains in Ihrer Region bestätigen Sie Folgendes:
- Ihr Oracle Cloud Infrastructure-Account kann Ihre Oracle Cloud Infrastructure-Providerbefehle authentifizieren.
- Mit dem Feature zur Ressourcen-Discovery erhalten Sie Informationen von Ihrem Account.
- Erstellen Sie im Verzeichnis
$HOME
das Verzeichnisresource-discovery
.cd
mkdir resource-discovery
- Wenn Sie Cloud Shell verwenden, suchen Sie die installierte OCI-Terraform-Providerdatei im Verzeichnis
/usr/bin
.ls /usr/bin
Der Dateiname lautet:
terraform-provider-oci_<version>
Beispieldatei:
terraform-provider-oci_v5.2.1
- Führen Sie den folgenden Befehl aus:
- In Cloud Shell:
terraform-provider-oci_<version> -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
- Auf Ihrer Compute-Instanz oder in Ihrer lokalen Umgebung:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
Wichtig
- Ersetzen Sie
<tenancy-ocid>
durch die Informationen unter Erforderliche Informationen erfassen. - Wenn Sie Cloud Shell verwenden, ersetzen Sie
terraform-provider-oci_<version>
durch den Dateinamen, den Sie in Schritt 2 gefunden haben.
Beispielausgabe:
... INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-1' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-2' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-3' ... INFO <date> Found 6 'availability_domain' resources. Generated under '/<home-directory>/resource-discovery/availability_domain.tf'. INFO <date> === COMPLETED ===
Hinweis
- Die Mandanten-OCID ist die Compartment-OCID für das Root Compartment. Wenn Sie eine bestimmte
<compartment-ocid>
oder Ihre<tenancy-ocid>
angeben, werden dieselben Availability-Domains ausgegeben. - Um Identitätsressourcen zu ermitteln, müssen Sie keine Compartment-OCID angeben. Im vorherigen Beispiel erhalten Sie dasselbe Ergebnis, wenn Sie
compartment_id
aus dem Befehl entfernen.compartment_id
soll Ihnen lediglich helfen, die Syntax für andere Services zu lernen.
- In Cloud Shell:
- Fehlmeldung: Fehler beim Abfragen der verfügbaren Providerpackages:
- Wenn Sie ein VPN verwenden, überprüfen Sie Ihre Proxy-Einstellungen.
- Fehler 401 (Service error: NotAuthenticated):
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Mandanten-OCID
- Benutzer-OCID
- Fingerprint
- RSA-Private Key (Pfad oder Schlüssel)
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Kein derartiger Host:
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Regions-ID
- Sie haben einen falschen Wert bei einer der folgenden Angaben:
- Gehen Sie zu Nutzung (Ressourcen-Discovery).
Es werden zwei Befehlsoptionen aufgeführt.
- Wählen Sie die Befehlsoption aus, die
compartment_id
als Basisbefehl verwendet:terraform-provider-oci -command=export -compartment_id= -output_path=
- Aktualisieren Sie den Basisbefehl:
- Verwenden Sie anstelle von
terraform-provider-oci
den symbolischen Linkbefehl:tf-oci
- Prüfen Sie den Abschnitt Parameterbeschreibung, um den Parametern im Basisbefehl die richtigen Werte hinzufügen:
- Verwenden Sie den
export
-Befehl, um Ressourcen-Discovery auszuführen:-command=export
- Fügen Sie die OCID des Compartments hinzu, in dem Sie Ressourcen ermitteln:
-compartment_id=<tenancy-ocid>
- Erstellen Sie ein Verzeichnis für die folgenden Ressourcen:
Beispiel:
-output_path=$HOME/resource-discovery
- Verwenden Sie den
- Verwenden Sie anstelle von
- Suchen Sie nach dem Begriff
availability_domain
, und beachten Sie die folgenden Informationen:Resources that are dependent on availability domains will be generated under availability_domain.tf file. These include: oci_core_boot_volume oci_file_storage_file_system oci_file_storage_mount_target oci_file_storage_snapshot
- Verwenden Sie für Services Folgendes:
availability_domain
(Obwohl es sich nicht um einen Service handelt, funktioniert er mit Service.)- Beispiel:
-services=availability_domain
- Die Servicenamen müssen nicht in Anführungszeichen gesetzt werden.
- Erstellen Sie den Befehl:
Beispiel:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
Hinweis
Der Befehl zur Ressourcenerkennung erstellt kein Verzeichnis für die erkannten Ressourcen. Erstellen Sie ein Verzeichnis, und geben Sie den Pfad im Befehl an.
Herzlichen Glückwunsch. Ihr Oracle Cloud Infrastructure-Account kann jetzt Ihre Terraform-OCI-Providerbefehle authentifizieren. Ihre Umgebung kann die Befehle zur Ressourcen-Discovery ausführen.
Referenzen:
Weitere Schritte
Weitere Terraform-Tutorials entdecken:
Weitere Informationen zur Entwicklung mit Oracle-Produkten finden Sie auf folgenden Websites: