Compute-Instanz erstellen

Mit Terraform können Sie eine Compute-Instanz in Ihrem Oracle Cloud Infrastructure-Mandanten erstellen.

Zu den wichtigsten Aufgaben gehören:

  • Erstellen Sie SSH-Schlüssel.
  • Erstellen Sie ein virtuelles Cloud-Netzwerk in Ihrem Mandanten.
  • Mit dem Oracle Cloud Infrastructure-Terraform-Provider können Sie eine Compute-Instanz im Netzwerk erstellen.
  • Melden Sie sich bei der Instanz an.
Ein Diagramm der Komponenten, die zum Erstellen einer Oracle Cloud Infrastructure-Compute-Instanz mit Terraform erforderlich sind. Die Compute-Instanz wird in einem öffentlichen Subnetz eines virtuellen Cloud-Netzwerks erstellt. Das öffentliche Subnetz ist über ein Internetgateway mit dem Internet verbunden.

Weitere Informationen finden Sie unter:

Bevor Sie beginnen

Für eine erfolgreiche Ausführung des Tutorials benötigen Sie Folgendes:

Anforderungen

1. Vorbereiten

Bereiten Sie die Umgebung für das Erstellen einer Compute-Instanz vor. Erfassen Sie außerdem alle Informationen, die Sie für den Abschluss des Tutorials benötigen.

SSH-Verschlüsselungsschlüssel erstellen

Erstellen Sie ssh-Verschlüsselungsschlüssel, um eine Verbindung zu Ihrer Compute-Instanz herzustellen.

  1. Öffnen Sie ein Terminalfenster:
    • MacOS oder Linux: Öffnen Sie ein Terminalfenster im Verzeichnis, in dem Sie Ihre Schlüssel speichern möchten.
    • Windows: Klicken Sie mit der rechten Maustaste auf das Verzeichnis, in dem Sie Ihre Schlüssel speichern möchten, und wählen Sie Git Bash Here aus.
    Hinweis

    Wenn Sie Windows-Subsystem für Linux (WSL) verwenden, stellen Sie sicher, dass sich das Verzeichnis für die Schlüssel direkt auf Ihrem Linux-Rechner und nicht in einem /mnt-Ordner (Windows-Dateisystem) befindet.
  2. Geben Sie den folgenden OpenSSH-Befehl aus:
    ssh-keygen -t rsa -N "" -b 2048 -C <your-ssh-key-name> -f <your-ssh-key-name>

    Der Befehl generiert zufälligen Text, der zum Generieren der Schlüssel verwendet wird. Nach Abschluss haben Sie zwei Dateien:

    • Die Private-Key-Datei: <your-ssh-key-name>
    • Die öffentliche Schlüsseldatei: <your-ssh-key-name>.pub

    Mit diesen Dateien können Sie sich bei Ihrer Compute-Instanz anmelden.

Sie haben die erforderlichen Verschlüsselungsschlüssel generiert.

Ausführliche Informationen zum Generieren von ssh-Verschlüsselungsschlüsseln finden Sie unter Schlüsselpaar erstellen.

Virtuelles Cloud-Netzwerk (VCN) erstellen
  1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
  2. Führen Sie auf der Listenseite Virtuelle Cloud-Netzwerke je nach der angezeigten Option eine der folgenden Aktionen aus:

    • Wählen Sie unter Aktionen die Option VCN-Assistenten starten aus.
    • Wählen Sie VCN-Assistenten starten aus.
  3. Wählen Sie im Bereich VCN-Assistenten starten die Option VCN mit Internetverbindung erstellen aus.
  4. Wählen Sie VCN-Assistenten starten aus.

    Das Fenster VCN mit Internetverbindung erstellen wird geöffnet.

1. Konfiguration

Geben Sie die folgenden grundlegenden Daten ein:

  • VCN-Name: <your-vcn-name>

  • Compartment: <your-compartment-name>
VCN konfigurieren
  • VCN-IPv4 CIDR-Block: Standardwert beibehalten: 10.0.0.0/16

  • DNS-Hostnamen in diesem VCN verwenden: Deaktivieren Sie dieses Kontrollkästchen.

Öffentliches Subnetz konfigurieren
  • IPv4 CIDR-Block: Behalten Sie den Standardwert bei: 10.0.0.0/24

Privates Subnetz konfigurieren
  • IPv4 CIDR-Block: Behalten Sie den Standardwert bei: 10.0.1.0/24

Beachten Sie, dass öffentliche und private Subnetze unterschiedliche Netzwerkadressen haben.

Wählen Sie Weiter aus. Die Seite Prüfen und erstellen wird geöffnet.

2. Prüfen und erstellen

Prüfen Sie die vollständige VCN-Konfiguration, und wählen Sie Erstellen aus.

Ressourcen werden erstellt, und es wird eine Meldung angezeigt, dass die VCN-Erstellung abgeschlossen ist.

Um das erstellte VCN anzuzeigen, wählen Sie VCN anzeigen aus.

Sie haben erfolgreich ein VCN zum Hosten Ihrer Compute-Instanz erstellt.

Erforderliche Informationen erfassen

Sammeln und kopieren Sie die benötigten Informationen in Ihren Notizblock.

  • Compartment Name
  • Compartment ID
  • Subnetz-ID
  • Quell-ID (Image der Compute-Instanz)
  • Ausprägung (Compute-Instanz)
  • SSH-autorisierter Schlüssel (Publicschlüsselpfad)
  • Privater SSH-Schlüsselpfad

Die Schritte zum Sammeln dieser Informationen finden Sie in der folgenden Tabelle.

Objekt Schritte zum Sammeln von Elementen
Compartment Name Beziehen Sie sich auf das abgeschlossene Tutorial Compartment erstellen.
Compartment ID
  1. Geben Sie in der Konsolen-Suchleiste <your-compartment-name> ein.
  2. Wählen Sie in den Suchergebnissen <your-compartment-name> aus.
  3. Wählen Sie Kopieren neben der OCID aus.
Instanzanzeigename Name Ihrer Wahl.
Subnetz-ID
  1. Öffnen Sie in der Konsole das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
  2. Wählen Sie unter Virtuelles Cloud-Netzwerk (VCN) erstellen die Option <your-vcn-name> aus.
  3. Wählen Sie Subnetze aus.
  4. Wählen Sie <your-compartment-name> aus, um Subnetze in Ihrem Compartment anzuzeigen.
  5. Wählen Sie im Menü Aktionen (drei Punkte) für das öffentliche Subnetz OCID kopieren aus.
Quell-ID (Image der Compute-Instanz)
  1. Suchen Sie in der Navigationsleiste der Konsole Ihre Region.

    Siehe In Regionen arbeiten.

  2. Gehen Sie zu den Versionshinweisen des Image.
  3. Wählen Sie Ubuntu 24.04.

    Die Liste der Bilder für Ubuntu 24.04 wird geöffnet.

  4. Wählen Sie das neueste Image aus: Canonical-Ubuntu-24.04-<date>.

    Auf der Seite werden Image-OCIDs aufgeführt.

  5. Suchen Sie nach dem Image für Ihre Region, und kopieren Sie die OCID des Images.

    Hinweis: Stellen Sie sicher, dass Sie eine kommerzielle OCID ohne gov auswählen.

Ausprägung und Konfiguration (Compute-Instanz)
  • Ausprägung: VM.Standard.E5.Flex
  • OCPUs: 1
  • Arbeitsspeicher (GB): 12

Hinweis: Für VM.Standard.E5.Flex sind Werte für OCPUs und Arbeitsspeicher erforderlich. Um eine andere Ausprägung auszuwählen, gehen Sie zu VM-Ausprägungen.

SSH-autorisierter Schlüssel (Publicschlüsselpfad) Lesen Sie den abgeschlossenen Abschnitt SSH-Verschlüsselungsschlüssel erstellen. Verwenden Sie diesen Pfad beim Einrichten der Compute-Instanz.
Privater SSH-Schlüsselpfad Lesen Sie den abgeschlossenen Abschnitt SSH-Verschlüsselungsschlüssel erstellen. Verwenden Sie diesen Private Key, wenn Sie eine Verbindung zur Compute-Instanz herstellen.
Ressourcen-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 all-resources in compartment <your-compartment-name>

Mit dieser Berechtigung können Sie alle Ressourcen im Compartment verwalten und Ihnen Administratorrechte in diesem Compartment erteilen.

Schritte zum Hinzufügen der Policy
  1. Öffnen Sie in der Konsole das Navigationsmenü , und wählen Sie Identität und Sicherheit aus. Wählen Sie unter Identität die Option Policys aus.
  2. Wählen Sie Ihr Compartment aus.
  3. Wählen Sie Policy erstellen aus.
  4. Geben Sie auf der Seite Policy erstellen die folgenden Werte ein:
    • Name: manage-<your-compartment-name>-resources
    • Beschreibung: Allow users to list, create, update, and delete resources in <your-compartment-name>.
    • Compartment: <your-tenancy>(root)
  5. Geben Sie unter Policy Builder die folgenden Werte ein:
    • Policy-Anwendungsfälle: Compartment-Verwaltung
    • Allgemeine Policy-Vorlagen: Verwalten des Compartments durch Compartment-Administratoren zulassen
    • Identitätsdomain: <identity-domain>
    • Gruppen: <a-group-your-username-belongs-to>
    • Speicherort: <your-compartment-name>
  6. Wählen Sie Erstellen.

Referenz: Allgemeine Policys

2. Skripte erstellen

Erstellen Sie Skripte zur Authentifizierung, zum Abrufen von Daten, zum Erstellen einer Compute-Instanz 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-compute, und wechseln Sie dann zu diesem Verzeichnis.
    mkdir tf-compute
    cd tf-compute
  2. Kopieren Sie die Datei provider.tf in das Verzeichnis tf-compute.
    cp ../tf-provider/provider.tf .
  3. Kopieren Sie die Datei versions.tf in das Verzeichnis tf-compute.
    cp ../tf-provider/versions.tf .
Daten abrufen

Rufen Sie den Namen einer Availability-Domain aus dem Account ab. Eine Availability-Domain ist eine der erforderlichen Eingaben zum Erstellen einer Compute-Instanz.

  1. Kopieren Sie die Datei availability-domains.tf in das Verzeichnis tf-compute.

    Die Datei availability-domains.tf wurde während des Tutorials OCI Terraform einrichten erstellt.

    cp ../tf-provider/availability-domains.tf .

    Beispielcode:

    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/data-sources/identity_availability_domains
    
    data "oci_identity_availability_domains" "ads" {
      compartment_id = "<tenancy-ocid>"
    }
  2. Erstellen Sie im Verzeichnis tf-compute eine Datei mit dem Namen outputs.tf.
    Hinweis

    Stellen Sie sicher, dass sich outputs.tf, provider.tf und availability-domains.tf im selben Verzeichnis befinden.
  3. Um den Namen der ersten Availability-Domain in der Liste der oci_identity_availability_domains auszugeben, fügen Sie den folgenden Code in die outputs.tf ein.
    
    # The "name" of the availability domain to be used for the compute instance.
    output "name-of-first-availability-domain" {
      value = data.oci_identity_availability_domains.ads.availability_domains[0].name
    }
  4. Speichern Sie die Datei outputs.tf.
  5. Führen Sie die Skripte mit Terraform aus:
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit die Daten abgerufen und in der Ausgabe angezeigt werden.

    Sie haben jetzt eine Ausgabe mit dem Namen der Availability-Domain, die für Ihre Instanz verwendet werden soll.

    Beispielausgabe:

    name-of-first-availability-domain = QnsC:US-ASHBURN-AD-1
Herzlichen Glückwunsch. Sie haben erfolgreich Daten aus Ihrem Oracle Cloud Infrastructure-Account abgerufen, die für die Compute-Instanz verwendet werden sollen.
Erläuterung

Wenn Sie Terraform im ersten Tutorial, OCI Terraform einrichten, einrichten, enthielt der Ausgabeblock die folgende Zeile:

value = data.oci_identity_availability_domains.ads.availability_domains

Dann war die Ausgabe ähnlich:

Outputs:

all-availability-domains-in-your-tenancy = tolist([
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-1"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-2"
  },
  {
    "compartment_id" = "ocid1.tenancy.xxx"
    "id" = "ocid1.availabilitydomain.xxx"
    "name" = "QnsC:US-ASHBURN-AD-3"
  },
])

Jetzt möchten Sie den Namen der ersten Availability-Domain in der Liste abrufen, der später für den Speicherort der Compute-Instanz verwendet werden soll:

"name" = "xxxx:US-ASHBURN-AD-1"
Hinweis

  • Fügen Sie einem Listenattribut einen Index mit eckigen Klammern hinzu.
  • Verwenden Sie den Index 0 für das erste Element in einer Liste.
  • Um das Attribut anzugeben, verwenden Sie einen Punkt nach den eckigen Klammern gefolgt von einem Attribut der Liste.
  • Beispiel: Erstes Element in der Liste:

    value = data.oci_identity_availability_domains.ads.availability_domains[0]

  • Beispiel: Name des ersten Elements in der Liste:

    value = data.oci_identity_availability_domains.ads.availability_domains[0].name

Compute-Ressource deklarieren

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

Tipp

Sie können einen Stack aus dem Konsolenworkflow speichern, um eine Compute-Instanz zu erstellen. Der Stack enthält eine Terraform-Konfiguration, die Sie als Referenz für die Ausprägungs- und Ausprägungskonfiguration verwenden können. Siehe Stack auf der Seite "Ressourcen erstellen" erstellen und Terraform-Konfiguration eines Stacks abrufen.
  1. Erstellen Sie eine Datei mit dem Namen compute.tf.
  2. Fügen Sie den folgenden Code zu compute.tf hinzu.
    resource "oci_core_instance" "ubuntu_instance" {
        # Required
        availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
        compartment_id = "<compartment-ocid>"
        shape = "VM.Standard.E5.Flex"
        shape_config {
            ocpus = "1"
            memory_in_gbs = "12"
        }
        source_details {
            source_id = "<source-ocid>"
            source_type = "image"
        }
    
        # Optional
        display_name = "<your-ubuntu-instance-name>"
        create_vnic_details {
            assign_public_ip = true
            subnet_id = "<subnet-ocid>"
        }
        metadata = {
            ssh_authorized_keys = file("<ssh-public-key-path>")
        } 
        preserve_boot_volume = false
    }
    Wichtig

    • Ersetzen Sie <compartment-ocid>, <source-ocid>, <your-ubuntu-instance-name> und <subnet-ocid> durch die Informationen, die Sie unter Erforderliche Informationen erfassen erfasst haben.
    • Verwenden Sie für die Availability-Domain den Namen, den Sie mit der Datenquelle abgerufen haben:
      data.oci_identity_availability_domains.ads.availability_domains[0].name
    • Verwenden Sie für ssh_authorized_keys das folgende Format:
      file("<ssh-public-key-path>")

      Sie können den Wert nach dem Erstellen der VM nicht mehr ändern.

  3. Speichern Sie die Datei compute.tf.
Erläuterung

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

So deklarieren Sie eine Compute-Ressource:

  • Gehen Sie zu Oracle Cloud Infrastructure-Provider.
  • Geben Sie im Feld Filter oben links core instance ein.

    Die Ergebnisse umfassen Datenquellen und Ressourcen für mehrere Services.

  • Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_instance aus.

    Der Titel der Seite ist der Ressourcentyp: oci_core_instance

  • Verwenden Sie im Abschnitt Argumentreferenz die folgenden erforderlichen Argumente (Eingaben):
    • availability_domain
    • compartment_id
    • Form
    • source_details
      • source_id
      • source_type
  • Erstellen Sie einen Ressourcenblock:
    • Deklarieren Sie einen Ressourcenblock mit dem Schlüsselwort: resource
    • Fügen Sie ein Label für den Typ der Ressource hinzu: "oci_core_instance"
    • 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: "ubuntu_instance"
    • Geben Sie im Codeblock einen Wert für erforderliche Argumente ein. Sie haben keinen Standardwert.
    • 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

Fügen Sie Ausgabeblöcke zu Ihrem Code hinzu, um Informationen über Ihre Compute-Instanz abzurufen, nachdem sie von Terraform erstellt wurde.

  1. Öffnen Sie die Datei outputs.tf.
  2. Erstellen Sie einen Ausgabeblock für die öffentliche IP der Instanz:
    • Die öffentliche IP ist nach dem Erstellen der Instanz verfügbar.
    • Melden Sie sich mit der öffentlichen IP bei der Instanz an.
    • Fügen Sie den folgenden Code zu outputs.tf hinzu:
    # Outputs for compute instance
    
    output "public-ip-for-compute-instance" {
      value = oci_core_instance.ubuntu_instance.public_ip
    }
  3. Fügen Sie einige weitere Ausgaben hinzu, um die Compute-Instanz zu beschreiben:
    • display_name
    • id
    • region
    • Form
    • Status
    • ocpus
    • memory_in_gbs
    • time_created
    
    output "instance-name" {
      value = oci_core_instance.ubuntu_instance.display_name
    }
    
    output "instance-OCID" {
      value = oci_core_instance.ubuntu_instance.id
    }
    
    output "instance-region" {
      value = oci_core_instance.ubuntu_instance.region
    }
    
    output "instance-shape" {
      value = oci_core_instance.ubuntu_instance.shape
    }
    
    output "instance-state" {
      value = oci_core_instance.ubuntu_instance.state
    }
    
    output "instance-OCPUs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].ocpus
    }
    
    output "instance-memory-in-GBs" {
      value = oci_core_instance.ubuntu_instance.shape_config[0].memory_in_gbs
    }
    
    output "time-created" {
      value = oci_core_instance.ubuntu_instance.time_created
    }
  4. Speichern Sie die Datei outputs.tf.
Erläuterung
  • Gehen Sie zu Attributreferenz (oci_core_instance).
    Hinweis

    Attribute sind die Ausgaben, die Sie für die Ressource oci_core_instance zurückgeben können.
  • Suchen Sie nach dem Attribut für die öffentliche IP: public_ip.
  • Erstellen Sie einen Ressourcenausgabeblock für public_ip:
    • Verwenden Sie das folgende Format für den Wertausdruck:
      • value = <type>.<local-name-for-resource>.<attribute>
      • Beispiel: value = oci_core_instance.ubuntu_instance.public_ip
  • Erstellen Sie einen Ausgabeblock für jede der folgenden Ausgaben:
    • display_name
    • id
    • region
    • Form
    • Status
    • ocpus
    • memory_in_gbs
    • time_created

3. Skripte ausführen

Führen Sie die Terraform-Skripte aus, um die Compute-Instanz in einem Compartment in Ihrem Mandanten zu erstellen. Verwenden Sie Ihre SSH-Schlüssel, um eine Verbindung zur Instanz herzustellen. Wenn Sie die Instanz nicht mehr benötigen, löschen Sie sie mit Terraform.

Instanz erstellen
  1. Compute-Instanz mit Terraform erstellen:
    terraform init
    terraform plan
    terraform apply

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

    Nachdem die Instanz erstellt wurde, werden die von Ihnen definierten Ausgaben einschließlich <your-public-ip-address> im Ausgabeterminal angezeigt.
  2. (Optional) Sehen Sie sich das Erstellen der Instanz über die Konsole an.
    • Öffnen Sie das Navigationsmenü , und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
    • Wählen Sie Ihr Compartment aus.
    • Sehen Sie, wie die Instanz in der Liste der Instanzen angezeigt wird.

Herzlichen Glückwunsch. Sie haben erfolgreich eine Compute-Instanz mit Terraform in Ihrem Oracle Cloud Infrastructure-Account erstellt.

Referenzen:

Bei der Instanz anmelden
  1. Geben Sie im Terminal die Ausgaben für Ihre Compute-Instanz ein:
    terraform output
  2. Kopieren Sie die öffentliche IP-Adresse aus den Ausgaben.
  3. Melden Sie sich mit diesem ssh-Befehl von Ihrem Linux-Rechner aus bei Ihrer VM an:
    ssh -i <ssh-private-key-path> ubuntu@<your-public-ip-address>
    Hinweis

    Stellen Sie sicher, dass sich Ihr Private Key direkt auf Ihrem Linux-(WSL-)Rechner befindet.
  4. Trennen Sie die Verbindung zur Instanz:
    exit
Instanz zerstören
  1. (Optional) Wenn Sie die Compute-Instanz nicht mehr benötigen, können Sie sie mit dem folgenden Befehl beenden:
    terraform destroy

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein.

  2. (Optional) Sehen Sie sich die Beendigung auf der Konsole an:
    • Öffnen Sie das Navigationsmenü , und wählen Sie Compute aus. Wählen Sie unter Compute die Option Instanzen aus.
    • Wählen Sie Ihr Compartment aus.
    • Sehen Sie sich die Statusänderung der Instanz in Wird beendet und dann in Beendet an.