Compartment erstellen

Mit Terraform können Sie eine Verbindung zu Ihrem Oracle Cloud Infrastructure-Account herstellen und ein Compartment in Ihrem Mandanten erstellen.

Zu den wichtigsten Aufgaben gehören:

  • Verwenden Sie Ressourcen des Oracle Cloud Infrastructure-Terraform-Providers für folgende Zwecke:
    • Deklarieren Sie ein Compartment mit Ihren Details.
    • Erstellen Sie das Compartment in Ihrem Mandanten.
Ein Diagramm eines Benutzers, der über einen lokalen Rechner mit einem Oracle Cloud Infrastructure-Mandanten verbunden ist. Die lokale Umgebung ist Linux, und Terraform ist installiert. Ein Pfeil führt von Terraform in der lokalen Umgebung zu Terraform Registry und zum Mandanten und zeigt auf ein Compartment. Diese Pfeile deuten darauf hin, dass der Benutzer mit Terraform und Terraform Registry ein Compartment im Mandanten erstellt hat.

Weitere Informationen finden Sie unter:

1. Vorbereiten

Bereiten Sie die Umgebung zur Authentifizierung und Ausführung der Terraform-Skripte vor. Erfassen Sie außerdem alle Informationen, die Sie für den Abschluss des Tutorials benötigen.

Mandanteninformationen abrufen

Erfassen Sie die folgenden Informationen aus der Oracle Cloud-Konsole, und kopieren Sie sie in Notepad.

  • Mandanten-OCID: <tenancy-ocid>
    1. Wählen Sie im Navigationsmenü das Menü Profil Symbol für Profilmenü aus, und wählen Sie Mandant: <your_tenancy_name> aus.
    2. Wählen Sie neben OCID die Option Kopieren aus.

      Die Mandanten-OCID wird in die Zwischenablage kopiert.

Compartment-Policy hinzufügen

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-your-username-belongs-to> to manage compartments in tenancy

Mit dieser Berechtigung können Sie ein Compartment für alle Ressourcen in Ihrem Tutorial erstellen.

Schritte zum Hinzufügen der Policy
  1. Melden Sie sich bei der Oracle Cloud-Konsole an.
  2. Wählen Sie im Navigationsmenü das Menü Profil Symbol für Profilmenü aus, und wählen Sie je nach der angezeigten Option Benutzereinstellungen oder Mein Profil aus.
  3. Wählen Sie je nach der angezeigten Option Gruppen oder Meine Gruppen aus.
  4. Kopieren Sie den Namen einer Gruppe, zu der Ihr Benutzername gehört.
  5. Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
  6. Wählen Sie das Compartment aus: <your-tenancy>(root)
  7. Wählen Sie Policy erstellen aus.
  8. Geben Sie auf der Seite Policy erstellen die folgenden Werte ein:
    • Name: manage-compartments
    • Beschreibung: Allow the group <a-group-your-username-belongs-to> to list, create, update, delete and recover compartments in the tenancy.
    • Compartment: <your-tenancy>(root)
  9. Wählen Sie unter Policy Builder die Option Manuellen Editor anzeigen aus.
  10. Fügen Sie die folgende Policy ein:
    allow group <a-group-your-username-belongs-to> to manage compartments in tenancy
  11. Wählen Sie Erstellen.

Referenz: Details zu Kombinationen aus Verben und Ressourcentyp (siehe Ressourcentyp compartments)

2. Skripte erstellen

Erstellen Sie Skripte zur Authentifizierung, zum Erstellen eines Compartments und zum Drucken von Ausgaben.

Authentifizierung hinzufügen
Richten Sie zuerst ein Verzeichnis für Ihre Terraform-Skripte ein. Kopieren Sie dann die Provider- und Versionsskripte aus dem Tutorial OCI Terraform einrichten, damit Ihr Oracle Cloud Infrastructure-Account die aus diesem Verzeichnis ausgeführten Skripte authentifizieren kann.
  1. Erstellen Sie im Verzeichnis $HOME ein Verzeichnis mit dem Namen tf-compartment, und wechseln Sie zu diesem Verzeichnis.
    mkdir tf-compartment
    cd tf-compartment
  2. Kopieren Sie die Datei provider.tf in das Verzeichnis tf-compartment.
    cp ../tf-provider/provider.tf .
  3. Kopieren Sie die Datei versions.tf in das Verzeichnis tf-compartment.
    cp ../tf-provider/versions.tf .
Compartment-Ressource deklarieren

Deklarieren Sie dann eine Oracle Cloud Infrastructure-Compartment-Ressource, und definieren Sie die Details für das Compartment.

  1. Erstellen Sie eine Datei mit dem Namen compartment.tf.
  2. Fügen Sie den folgenden Code zu compartment.tf hinzu.
    • Ersetzen Sie <tenancy-ocid> durch die Informationen, die Sie unter Mandanteninformationen abrufen erfasst haben.

      Die compartment_id ist die OCID für das übergeordnete Compartment. Verwenden Sie das Root Compartment als übergeordnetes Compartment. Die Mandanten-OCID ist die Compartment-OCID für das Root Compartment.

    • Ersetzen Sie <your-compartment-name> durch einen Namen Ihrer Wahl.
    
    resource "oci_identity_compartment" "tf-compartment" {
        # Required
        compartment_id = "<tenancy-ocid>"
        description = "Compartment for Terraform resources."
        name = "<your-compartment-name>"
    }
  3. Speichern Sie die Datei compartment.tf.
Erläuterung

In Terraform sind Ressourcen Objekte wie virtuelle Cloud-Netzwerke oder Compute-Instanzen. Sie können sie mit Terraform erstellen, aktualisieren und löschen.

So deklarieren Sie eine Compartment-Ressource:

  1. Gehen Sie zu Oracle Cloud Infrastructure-Provider.
  2. Geben Sie im Feld Filter oben links compartment ein.

    Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.

  3. Wählen Sie unter Identität unter Ressourcen die Option oci_identity_compartment aus.

    Der Titel der Seite ist der Ressourcentyp: oci_identity_compartment

    Erforderliche Argumente werden unter Argumentreferenz aufgeführt:

    • compartment_id
    • description
    • name
  4. Erstellen Sie einen Ressourcenblock:
    • Deklarieren Sie einen Ressourcenblock mit dem Schlüsselwort: resource
    • Fügen Sie ein Label hinzu für: "oci_identity_compartment"
    • Fügen Sie ein Label für einen lokalen Namen Ihrer Wahl hinzu:
      • Das Label darf Buchstaben, Ziffern, Unterpunkte (_) und Bindestriche (-) enthalten. Das erste Zeichen darf keine Ziffer sein.
      • Beispiel: "tf-compartment"
    • Geben Sie im Codeblock einen Wert für die Argumente mit dem Label "Erforderlich" ein. Sie haben keine Standardwerte.
    • Geben Sie für optionale Argumente Werte für die Argumente an, die Sie überschreiben möchten. Andernfalls werden deren Standardwerte verwendet.
Ausgaben hinzufügen

Hinzufügen von Ausgabeblöcken zu Ihrem Code, um Informationen zu Ihrem Compartment abzurufen, nachdem Terraform das Compartment erstellt hat.

  1. Erstellen Sie im Verzeichnis tf-compartment eine Datei mit dem Namen outputs.tf.
  2. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for compartment
    
    output "compartment-name" {
      value = oci_identity_compartment.tf-compartment.name
    }
    
    output "compartment-OCID" {
      value = oci_identity_compartment.tf-compartment.id
    }
  3. Speichern Sie die Datei outputs.tf.
  4. Listen Sie alle Dateien im Verzeichnis tf-compartment auf.
    ls

    Stellen Sie sicher, dass die folgenden Dateien im selben Verzeichnis vorhanden sind:

    • compartment.tf
    • outputs.tf
    • provider.tf
    • versions.tf
Erläuterung
  • Gehen Sie zu Attributreferenz (oci_identity_compartment).
    Hinweis

    Attribute sind die Ausgaben, die Sie für die Ressource oci_identity_compartment zurückgeben können.
  • Legen Sie fest, welche Attribute ausgegeben werden sollen.
  • Erstellen Sie einen Ressourcenausgabeblock:
    • 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: "compartment-name"
    • Geben Sie im Codeblock einen Wert für die Ressourcenausgabe mit folgendem Ausdruck ein:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Beispiel: value = oci_identity_compartment.tf-compartment.id
    • Erstellen Sie für jede Ausgabe einen Ausgabeblock.

3. Compartment erstellen

Führen Sie die Terraform-Skripte aus. Nachdem Ihr Account die Skripte authentifiziert hat, erstellt Terraform ein Compartment im Mandanten.

Initialisieren
Initialisieren Sie ein Arbeitsverzeichnis im Verzeichnis tf-compartment.
terraform init

Beispielausgabe:

Initializing the backend...

Initializing provider plugins...

Terraform has been successfully initialized!
Plan
Erstellen Sie einen Ausführungsplan, um zu prüfen, ob die im Ausführungsplan angezeigten Änderungen mit Ihren Erwartungen übereinstimmen, ohne die echten Ressourcen zu ändern.
terraform plan

Die erwartete Ausgabe enthält die Zeile Plan: 1 to add, 0 to change, 0 to destroy.

Beispielausgabe:

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with
the following symbols:
  + create

Terraform will perform the following actions:

  # oci_identity_compartment.tf-compartment will be created
  + resource "oci_identity_compartment" "tf-compartment" {
      + compartment_id = "ocid1.tenancy.xxx"
      + defined_tags   = (known after apply)
      + description    = "Compartment for Terraform resources."
      + freeform_tags  = (known after apply)
      + id             = (known after apply)
      + inactive_state = (known after apply)
      + is_accessible  = (known after apply)
      + name           = "<your-compartment-name>"
      + state          = (known after apply)
      + time_created   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + compartment-OCID = (known after apply)
  + compartment-name = "<your-compartment-name>"
Einspielen
  1. Compartment mit Terraform erstellen:
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit die Ressource erstellt werden kann.

  2. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    • Öffnen Sie das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Compartments aus.
    • Aktualisieren Sie die Seite, bis der Compartment-Name angezeigt wird.
    • Wählen Sie den Compartment-Namen aus, um die Details, beispielsweise die OCID, anzuzeigen.
  3. Prüfen Sie im Ausgabeterminal die definierten Ausgaben.

    Beispielausgabe:

    oci_identity_compartment.tf-compartment: Creating...
    oci_identity_compartment.tf-compartment: Creation complete after 9s [id=xxx]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    
    Outputs:
    
    compartment-OCID = ocid1.compartment.xxx
    compartment-name = <your-compartment-name>

Herzlichen Glückwunsch. Sie haben sich erfolgreich angemeldet und mit dem Oracle Cloud Infrastructure-Terraform-Provider ein Compartment in Ihrem Mandanten erstellt.

Referenzen: