Virtuelles Cloud-Netzwerk erstellen

Verwenden Sie Terraform, um ein virtuelles Cloud-Netzwerk (VCN) in Ihrem Oracle Cloud Infrastructure-Mandanten zu erstellen.

Zu den wichtigsten Aufgaben gehören:

  • Richten Sie ein einfaches VCN ein.
  • Definieren Sie die folgenden Ressourcen, und fügen Sie sie dem Netzwerk hinzu:
    • Sicherheitslisten
    • Private und öffentliche Subnetze
Ein Diagramm der Komponenten, die zum Erstellen eines virtuellen Cloud-Netzwerks von Oracle Cloud Infrastructure mit Terraform erforderlich sind. In einer lokalen Linux-Umgebung erstellt der Benutzer ein virtuelles Cloud-Netzwerk mit Terraform. Dieses Netzwerk verfügt über ein öffentliches Subnetz, auf das über das Internet zugegriffen werden kann. Das Netzwerk verfügt außerdem über ein privates Subnetz, das über ein NAT-Gateway eine Verbindung zum Internet und eine private Verbindung zum Oracle Services Network herstellt. Der CIDR-Block für das virtuelle Cloud-Netzwerk ist 10.0.0.0/16, für das öffentliche Subnetz 10.0.0.0/24 und für das private Subnetz 10.0.1.0/24.

Weitere Informationen finden Sie unter:

Bevor Sie beginnen

Anforderungen

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

1. Vorbereiten

Vorbereitung der Umgebung für das Erstellen eines VCN. Erfassen Sie außerdem alle Informationen, die Sie für den Abschluss des Tutorials benötigen.

Erforderliche Informationen erfassen

Kopieren Sie die folgenden Informationen in Notepad.

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.
Region
  1. Suchen Sie in der Navigationsleiste der Konsole Ihre Region.

    Beispiel: US East (Ashburn)

    Weitere Informationen finden Sie unter In Regionen arbeiten.

  2. Suchen Sie die ID Ihrer Region unter Regionen und Availability-Domains.

    Beispiel: us-ashburn-1.

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. Basisnetzwerk erstellen

Erstellen Sie Skripte für die Authentifizierung, ein einfaches virtuelles Cloud-Netzwerk (VCN), das von einem Modul definiert wird, und 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-vcn, und wechseln Sie zu diesem Verzeichnis.
    mkdir tf-vcn
    cd tf-vcn
  2. Kopieren Sie die Datei provider.tf in das Verzeichnis tf-vcn.
    cp ../tf-provider/provider.tf .
  3. Kopieren Sie die Datei versions.tf in das Verzeichnis tf-vcn.
    cp ../tf-provider/versions.tf .
Basisnetzwerk deklarieren

Deklarieren Sie ein Basisnetzwerk mit einem Oracle Cloud Infrastructure-Modul (VCN), das in der Terraform Registry dokumentiert ist. Führen Sie dann Ihre Skripte aus, und erstellen Sie das Netzwerk. In den nächsten Abschnitten fügen Sie Komponenten zur Anpassung Ihres Netzwerks hinzu.

Tipp

Sie können einen Stack aus dem Konsolenworkflow zum Erstellen eines VCN speichern. Der Stack enthält eine Terraform-Konfiguration, die Sie als Referenz für die VCN-Konfiguration verwenden können. Siehe Stack auf der Seite "Ressourcen erstellen" erstellen und Terraform-Konfiguration eines Stacks abrufen.
  1. Gehen Sie in der Terraform-Registry zum OCI-VCN-Modul unter vcn.
    So navigieren Sie zu dieser Seite:
    1. Gehen Sie zu Terraform Registry.
    2. Wählen Sie Module aus.
    3. Wählen Sie in der Liste Provider die Option Oracle aus.
    4. Wählen Sie oracle-terraform-modules/vcn aus.
  2. Wählen Sie unter Version in der Liste Version 3.6.0 aus.
    In diesem Tutorial wird Version 3.6.0 verwendet. Eine andere Version erfordert möglicherweise unterschiedliche Eingaben und erstellt verschiedene Ressourcen für Ihr VCN. Um erforderliche und optionale Eingaben zu prüfen, wählen Sie Eingaben aus.
  3. Erstellen Sie eine Datei mit dem Namen vcn-module.tf.
  4. Kopieren Sie den Code aus den Provisioning-Anweisungen in vcn-module.tf.

    Beispiel:

    # Source from https://registry.terraform.io/modules/oracle-terraform-modules/vcn/oci/
    module "vcn" {
      source  = "oracle-terraform-modules/vcn/oci"
      version = "3.6.0"
      # insert the 1 required variable here
    }
  5. Aktualisieren Sie vcn-module.tf, um das Compartment anzugeben (erforderliche Eingabe), und überschreiben Sie einige optionale Eingaben.
    # Source from https://registry.terraform.io/modules/oracle-terraform-modules/vcn/oci/
    module "vcn" {
      source  = "oracle-terraform-modules/vcn/oci"
      version = "3.6.0"
      # insert the 1 required variable here
    
      # Required Inputs
      compartment_id = "<compartment-ocid>"
    
      # Optional Inputs 
      region = "<region-identifier>"
      
      # Changing the following default values
      vcn_name = "tutorial-vcn"
      create_internet_gateway = true
      create_nat_gateway = true
      create_service_gateway = true
    
      # Using the following default values
      # vcn_dns_label = "vcnmodule"
      # vcn_cidrs = ["10.0.0.0/16"]
    }
    • Ersetzen Sie <compartment-ocid> und <region-identifier> durch die Informationen unter Erforderliche Informationen erfassen.
    • Wenn Sie ein benutzerdefiniertes DNS-Label möchten, entfernen Sie die Kommentarzeile für vcn_dns_label, und ändern Sie den Wert aus dem Standardwert "vcnmodule".
      Hinweis

      Der DNS-Domainname für Ihr virtuelles Cloud-Netzwerk lautet:
      <your-dns-label>.oraclevcn.com
  6. Speichern Sie die Datei vcn-module.tf.
Erläuterung
Module

Ein Modul ist ein Container für mehrere Ressourcen, die zusammen verwendet werden. Anstatt Infrastrukturressourcen einzeln zu deklarieren, beginnen Sie mit einem Modul, das von Oracle Cloud Infrastructure bereitgestellt wird. Beispiel: Beginnen Sie mit einem einfachen VCN-Modul. Fügen Sie dann die Ressourcen, die nicht im Modul enthalten sind, Ihren Skripten hinzu.

Modulblock deklarieren
  • Starten Sie den Block mit dem Schlüsselwort: module
  • Fügen Sie ein Label für den angegebenen Namen des Moduls hinzu:
    • Beispiel: "vcn"
  • Innerhalb des Codeblocks:
    • Fügen Sie source- und version-Informationen aus dem Abschnitt Provisioning-Anweisungen der Moduldokumentation hinzu.
    • Geben Sie einen Wert für die erforderlichen Eingaben an. Sie haben keinen Standardwert. Beispiel:
        # Required Inputs
        compartment_id = "<compartment-ocid>"
    • Geben Sie Werte für die zu überschreibenden optionalen Eingaben an. Andernfalls werden deren Standardwerte verwendet. Beispiel:
        # Optional Inputs 
        region = "<region-identifier>"
        
        # Changing the following default values
        vcn_name = "tutorial-vcn"
        create_internet_gateway = true
        create_nat_gateway = true
        create_service_gateway = true
    • Sie können die optionalen Eingaben auskommentieren und ihren Standardwert anzeigen. Wenn Sie Ihren Code später prüfen, wissen Sie also, welche Werte erwartet wurden. Beispiel:
        # Using the following default values
        # vcn_dns_label = "vcnmodule"
        # vcn_cidrs = ["10.0.0.0/16"]
Ausgaben hinzufügen

Hinzufügen von Ausgabeblöcken zu Ihrem Code, um Informationen über Ihr virtuelles Cloud-Netzwerk abzurufen, nachdem Sie Ihre Skripte ausgeführt haben.

  1. Erstellen Sie im Verzeichnis tf-vcn eine Datei mit dem Namen outputs.tf.
  2. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for the vcn module
    
    output "vcn_id" {
      description = "OCID of the VCN that is created"
      value = module.vcn.vcn_id
    }
    output "id-for-route-table-that-includes-the-internet-gateway" {
      description = "OCID of the internet-route table. This route table has an internet gateway to be used for public subnets"
      value = module.vcn.ig_route_id
    }
    output "nat-gateway-id" {
      description = "OCID for NAT gateway"
      value = module.vcn.nat_gateway_id
    }
    output "id-for-for-route-table-that-includes-the-nat-gateway" {
      description = "OCID of the nat-route table - This route table has a nat gateway to be used for private subnets. This route table also has a service gateway."
      value = module.vcn.nat_route_id
    }
  3. Speichern Sie die Datei outputs.tf.
  4. Listen Sie alle Dateien im Verzeichnis tf-vcn auf.
    ls

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

    • outputs.tf
    • provider.tf
    • vcn-module.tf
    • versions.tf
Erläuterung
Modulausgaben

Modulausgaben sind die Attribute, die Sie für dieses Modul zurückgeben können.

Ausgaben für VCN-Modul suchen

Gehen Sie zur Seite vcn, und wählen Sie Ausgaben aus, um eine Liste der Attribute anzuzeigen, die für das VCN-Modul ausgegeben werden können. Prüfen Sie die Beschreibung der Attribute:

  • ig_route_id
    • OCID der Routentabelle, die das Internetgateway enthält
  • nat_gateway_id
    • OCID des NAT-Gateways
  • nat_route_id
    • OCID der Routing-Tabelle, die das NAT-Gateway enthält
  • vcn_id
    • OCID des VCN
Modulausgabeblock deklarieren
    • Starten Sie den Block 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: "vcn_id"
    • Ruft die Attribute aus den Ausgaben für das Modul unter Oracle Terraform-Module ab.
    • Geben Sie im Codeblock einen Wert für die Modulausgabe mit folgendem Ausdruck ein:
      • value = module.<module-name>.<output-attribute>
      • Beispiel: value = module.vcn.vcn_id
    • (Optional): Fügen Sie im Codeblock eine Beschreibungszeichenfolge hinzu. Beispiel:
      description = "OCID of the internet-route table. This route table has an internet gateway to be used for public subnets"
      Hinweis

      Eine Beschreibungszeichenfolge wird nicht in der Ausgabe gedruckt. Stellen Sie daher sicher, dass das Label die Ausgaben beschreibt.
    • Erstellen Sie für jede Ausgabe einen Ausgabeblock.
Basisnetzwerk erstellen
  1. Erstellen Sie Ihr Basisnetzwerk mit Terraform:
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit Ihre Ressourcen erstellt werden können.

    Nachdem Sie das virtuelle Netzwerk erstellt haben, werden die von Ihnen definierten Ausgaben im Ausgabeterminal angezeigt.
  2. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    • Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    • Wählen Sie Ihr Compartment aus.
    • Sehen Sie, wie Ihr virtuelles Cloud-Netzwerk in der Liste der Netzwerke angezeigt wird.

Herzlichen Glückwunsch. Sie haben erfolgreich ein grundlegendes virtuelles Netzwerk mit Terraform in Ihrem Oracle Cloud Infrastructure-Account erstellt. Sie verfügen über ein virtuelles Netzwerk und sind an diesem Punkt fertig. In den folgenden Abschnitten wird gezeigt, wie Sie ein Netzwerk anpassen, das aus einem Modul erstellt wurde.

3. Netzwerk anpassen

Erstellen Sie Skripte für Sicherheitslisten, private Subnetze und öffentliche Subnetze, um dasselbe virtuelle Netzwerk wie im Workflow zum Erstellen der Konsole zu erstellen.

Sicherheitsliste für privates Subnetz erstellen
Sicherheitsliste deklarieren
  1. Erstellen Sie eine Datei mit dem Namen private-security-list.tf.
  2. Fügen Sie den folgenden Code zu private-security-list.tf hinzu.
    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list
    
    resource "oci_core_security_list" "private-security-list"{
    
    # Required
      compartment_id = "<compartment-ocid>"
      vcn_id = module.vcn.vcn_id
    
    # Optional
      display_name = "security-list-for-private-subnet"
    }
    • Ersetzen Sie <compartment-ocid> durch die Informationen unter Erforderliche Informationen erfassen.
    • Setzen Sie vcn_id auf die VCN-OCID, die Sie mit dem Modul erstellt haben.
      vcn_id = module.vcn.vcn_id
  3. Speichern Sie die Datei private-security-list.tf.
Erläuterung

Suchen Sie unter Argumentreferenz (oci_core_security_list) alle erforderlichen Argumente (Aufzählungszeichen der ersten Ebene):

  • compartment_id
  • vcn_id
So navigieren Sie zu dieser URL

So navigieren Sie zur Argumentreferenz (oci_core_security_list):

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

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

  3. Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
  4. Wählen Sie Argumentreferenz aus.

    Die Argumentreferenz wird geöffnet.

Deklarieren Sie die Sicherheitsliste:

  • Für compartment_id: verwenden
    compartment_id = "<compartment-ocid>"
  • Verwenden Sie für vcn_id die OCID des grundlegenden virtuellen Netzwerks. Um die OCID zuzuweisen, bevor sie bekannt ist, weisen Sie eine Ausgabe aus dem Modul als Eingabe für die Sicherheitslistenressource zu:
    • Rufen Sie das Ausgabeattribut des Moduls von der Modulseite Ausgaben ab.
    • Weisen Sie dem Ressourcenargument einen Wert mit dem folgenden Ausdruck zu:
      • <resource argument> = module.<module-name>.<output-attribute>
      • Beispiel: vcn_id = module.vcn.vcn_id
      • Sowohl oci_core_security_list resource als auch oracle-terraform-modules/vcn verwenden denselben Argumentnamen für die virtuelle Cloud-Netzwerk-OCID: vcn_id.
      • Das linke vcn_id ist das Argument (erforderliche Eingabe) für die Ressource.
      • vcn_id ist die OCID des VCN, das Sie mit dem Modul erstellen.
      • Es spielt keine Rolle, ob Sie das VCN-Modulskript ausgeführt und das VCN erstellt haben. In beiden Fällen weist Terraform der Sicherheitsliste die VCN-OCID zu, nachdem das VCN-Modul erstellt wurde.
Egress-Regel hinzufügen
Hinzufügen einer Egress-Regel zu Ihrer Sicherheitsliste auf der Grundlage der folgenden Werte:
  • zustandslos: Nein
  • Zielort: 0.0.0.0/0
  • IP-Protokoll: Alle Protokolle
Hinweis

Das Tabellenfeld Lässt zu wird automatisch basierend auf anderen Feldern generiert. Sie fügen in Ihrem Skript dafür kein Argument hinzu.
  1. Fügen Sie folgenden Code zu private-security-list.tf hinzu:
      egress_security_rules {
          stateless = false
          destination = "0.0.0.0/0"
          destination_type = "CIDR_BLOCK"
          protocol = "all" 
      }
  2. Speichern Sie die Datei private-security-list.tf.
  3. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for private security list
    
    output "private-security-list-name" {
      value = oci_core_security_list.private-security-list.display_name
    }
    output "private-security-list-OCID" {
      value = oci_core_security_list.private-security-list.id
    }
  4. Speichern Sie die Datei outputs.tf.
  5. Listen Sie alle Dateien im Verzeichnis tf-vcn auf.
    ls

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

    • outputs.tf
    • private-security-list.tf
    • provider.tf
    • vcn-module.tf
    • versions.tf
Erläuterung

Gehen Sie für private-security-list.tf zu Argumentreferenz (oci_core_security_list), und suchen Sie die folgenden Argumente:

  • egress_security_rules
    • Zustandslos (Stateless)
    • Ziel
    • destination_type
    • Protokoll
So navigieren Sie zu dieser URL

So navigieren Sie zur Argumentreferenz (oci_core_security_list):

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

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

  3. Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
  4. Wählen Sie Argumentreferenz aus.

    Die Argumentreferenz wird geöffnet.

Hinweis

Verwenden Sie das Gleichheitszeichen (=), um nur einem Argument innerhalb des Blocks einen Wert zuzuweisen.

  • Schreiben:
    egress_security_rules {
    <arguments with assigned values>
    }
  • Schreiben Sie nicht:
    egress_security_rules = {
    <arguments with assigned values>
    }

Wählen Sie für Attribute zur Verwendung als Ausgaben in outputs.tf die Option Attributreferenz aus, um die Attributreferenz (oci_core_security_list) zu öffnen und die folgenden Attribute zu suchen:

  • display_name
  • id
Sicherheitsliste erstellen
  1. Erstellen Sie die Sicherheitsliste für das private Subnetz mit Terraform:
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit Ihre Ressourcen erstellt werden können.

    Nachdem Sie die Sicherheitsliste erstellt haben, werden die von Ihnen definierten Ausgaben im Ausgabeterminal angezeigt.
  2. (Optional) Sehen Sie sich das Erstellen des Netzwerks über die Konsole an.
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    2. Wählen Sie Ihr VCN aus.
    3. Wählen Sie auf der Detailseite je nach der angezeigten Option Sicherheit oder Sicherheitslisten aus.
    4. Wählen Sie die Sicherheitsliste aus, die für ein privates Subnetz erstellt wurde (security-list-for-private-subnet).
    5. Wählen Sie je nach der angezeigten Option Sicherheitsregeln oder Egress-Regeln aus.

Herzlichen Glückwunsch. Sie haben erfolgreich eine Sicherheitsliste mit einer Egress-Regel im virtuellen Cloud-Netzwerk erstellt. Im nächsten Abschnitt fügen Sie dieser Sicherheitsliste Ingress-Regeln hinzu.

Ingress-Regeln für das private Subnetz erstellen

In diesem Abschnitt fügen Sie der Sicherheitsliste, die Sie im vorherigen Abschnitt erstellt haben, die folgenden Ingress-Regeln hinzu.

Ingress-Regeln

  • Regel 1:
    • zustandslos: Nein
    • Quelle: 10.0.0.0/16
    • IP-Protokoll: TCP
    • Quellportbereich: Alle
    • Zielportbereich: 22
  • Regel 2:
    • zustandslos: Nein
    • Quelle: 0.0.0.0/0
    • IP-Protokoll: ICMP
    • Typ und Code: 3, 4
  • Regel 3:
    • zustandslos: Nein
    • Quelle: 10.0.0.0/16
    • IP-Protokoll: ICMP
    • Typ und Code: 3
Hinweis

Das Tabellenfeld Lässt Folgendes zu wird automatisch basierend auf anderen Feldern generiert. Sie fügen in Ihrem Skript dafür kein Argument hinzu.
  1. Fügen Sie folgenden Code zu private-security-list.tf hinzu:
      ingress_security_rules { 
          stateless = false
          source = "10.0.0.0/16"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml TCP is 6
          protocol = "6"
          tcp_options { 
              min = 22
              max = 22
          }
        }
      ingress_security_rules { 
          stateless = false
          source = "0.0.0.0/0"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ICMP is 1  
          protocol = "1"
      
          # For ICMP type and code see: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
          icmp_options {
            type = 3
            code = 4
          } 
        }   
      
      ingress_security_rules { 
          stateless = false
          source = "10.0.0.0/16"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ICMP is 1  
          protocol = "1"
      
          # For ICMP type and code see: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
          icmp_options {
            type = 3
          } 
        }
  2. Speichern Sie die Datei private-security-list.tf.
  3. Führen Sie Ihre Skripte aus.
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit Ihre Ressourcen erstellt werden können.

  4. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    2. Wählen Sie Ihr VCN aus.
    3. Wählen Sie auf der Detailseite je nach der angezeigten Option Sicherheit oder Sicherheitslisten aus.
    4. Wählen Sie die Sicherheitsliste aus, die für ein privates Subnetz erstellt wurde (security-list-for-private-subnet).
    5. Wählen Sie je nach der angezeigten Option Sicherheitsregeln oder Ingress-Regeln aus.

Herzlichen Glückwunsch. Sie haben Ihrer Sicherheitsliste erfolgreich drei Ingress-Regeln hinzugefügt. Sie verwenden diese Sicherheitsliste für ein privates Subnetz. Im nächsten Abschnitt erstellen Sie eine weitere Sicherheitsliste für ein öffentliches Subnetz.

Erläuterung

Suchen Sie unter Argumentreferenz (oci_core_security_list) die folgenden Argumente:

  • ingress_security_rules
    • Zustandslos (Stateless)
    • quelle
    • source_type
    • Protokoll
    • icmp_options
      • Typ
      • Code
    • tcp_options
      • Min.
      • max
So navigieren Sie zu dieser URL

So navigieren Sie zur Argumentreferenz (oci_core_security_list):

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

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

  3. Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
  4. Wählen Sie Argumentreferenz aus.

    Die Argumentreferenz wird geöffnet.

  • Informationen zum Protokoll finden Sie unter Protokollnummern:
    • TCP: 6
    • ICMP: 1
  • Informationen zur icmp_options finden Sie unter Internet Control Message Protocol-(ICMP-)Parameter.
  • Wenn Sie für tcp_options keinen Portbereich haben, z.B. Zielbereich: 22, setzen Sie den Höchst- und Mindestwert auf dieselbe Zahl. Beispiel:
    • Min. = 22
    • max = 22
Sicherheitsliste für das öffentliche Subnetz erstellen
In diesem Abschnitt erstellen Sie eine Sicherheitsliste in Ihrem Netzwerk mit Egress- und Ingress-Regeln. Später weisen Sie diese Sicherheitsliste einem öffentlichen Subnetz zu.
  1. Kopieren Sie im Verzeichnis tf-vcn die Datei private-security-list.tf, und geben Sie ihr den Namen public-security-list.tf.
    cp private-security-list.tf public-security-list.tf
  2. Öffnen Sie die Datei public-security-list.tf, und aktualisieren Sie Folgendes:
    • Lokaler Name des Ressourcenblocks: von "private-security-list" in "public-security-list"
    • Sicherheitslistenname: display_name = "security-list-for-public-subnet"
    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_security_list
    
    resource "oci_core_security_list" "public-security-list"{
    
    # Required
      compartment_id = "<compartment-ocid>"
      vcn_id = module.vcn.vcn_id
    
    # Optional
      display_name = "security-list-for-public-subnet"
  3. Verwenden Sie dieselbe Egress-Regel wie das private.

    Egress-Regel

    • zustandslos: Nein
    • Zielort: 0.0.0.0/0
    • IP-Protokoll: Alle Protokolle
      
      egress_security_rules {
          stateless = false
          destination = "0.0.0.0/0"
          destination_type = "CIDR_BLOCK"
          protocol = "all" 
      }
  4. Aktualisieren Sie die TCP-Regel für die erste Ingress-Regel wie folgt:
    • von source = "10.0.0.0/16" in source = "0.0.0.0/0"

    Ingress-Regeln

    • Regel 1:
      • zustandslos: Nein
      • Quelle: 0.0.0.0/0
      • IP-Protokoll: TCP
      • Quellportbereich: Alle
      • Zielportbereich: 22
    • Regel 2:
      • zustandslos: Nein
      • Quelle: 0.0.0.0/0
      • IP-Protokoll: ICMP
      • Typ und Code: 3, 4
    • Regel 3:
      • zustandslos: Nein
      • Quelle: 10.0.0.0/16
      • IP-Protokoll: ICMP
      • Typ und Code: 3
     
    ingress_security_rules { 
          stateless = false
          source = "0.0.0.0/0"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml TCP is 6
          protocol = "6"
          tcp_options { 
              min = 22
              max = 22
          }
        }
      ingress_security_rules { 
          stateless = false
          source = "0.0.0.0/0"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ICMP is 1  
          protocol = "1"
      
          # For ICMP type and code see: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
          icmp_options {
            type = 3
            code = 4
          } 
        }   
      
      ingress_security_rules { 
          stateless = false
          source = "10.0.0.0/16"
          source_type = "CIDR_BLOCK"
          # Get protocol numbers from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml ICMP is 1  
          protocol = "1"
      
          # For ICMP type and code see: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
          icmp_options {
            type = 3
          } 
        }
    
  5. Speichern Sie die Datei public-security-list.tf.
  6. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for public security list
    
    output "public-security-list-name" {
      value = oci_core_security_list.public-security-list.display_name
    }
    output "public-security-list-OCID" {
      value = oci_core_security_list.public-security-list.id
    }
  7. Speichern Sie die Datei outputs.tf.
  8. Listen Sie alle Dateien im Verzeichnis tf-vcn auf.
    ls

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

    • outputs.tf
    • private-security-list.tf
    • provider.tf
    • public-security-list.tf
    • vcn-module.tf
    • versions.tf
  9. Führen Sie Ihre Skripte aus.
    terraform init
    terraform plan
    terraform apply

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

  10. (Optional) Sehen Sie sich die Erstellung auf der Konsole an.
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    2. Wählen Sie Ihr VCN aus.
    3. Wählen Sie auf der Detailseite je nach der angezeigten Option Sicherheit oder Sicherheitslisten aus.
    4. Wählen Sie die Sicherheitsliste aus, die für ein öffentliches Subnetz erstellt wurde (security-list-for-public-subnet).
    5. Wählen Sie je nach der angezeigten Option Sicherheitsregeln oder Ingress-Regeln aus.
    6. Wählen Sie je nach der angezeigten Option Sicherheitsregeln oder Egress-Regeln aus.

Herzlichen Glückwunsch. Sie haben erfolgreich eine weitere Sicherheitsliste in Ihrem virtuellen Cloud-Netzwerk erstellt.

Private Subnetze erstellen

In diesem Abschnitt erstellen Sie ein privates Subnetz in Ihrem Netzwerk und verknüpfen die private Sicherheitsliste mit diesem Subnetz. Sie fügen auch die NAT-Routentabelle hinzu, die Sie mit dem VCN-Modul erstellt haben. Die NAT-Routentabelle verfügt über ein NAT-Gateway und ein Servicegateway und ist für private Subnetze konzipiert. Sehen Sie sich das erste Diagramm im Tutorial an.

  1. Erstellen Sie im Verzeichnis tf-vcn eine Datei mit dem Namen private-subnet.tf, und fügen Sie ihr den folgenden Code hinzu:
    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_subnet
    
    resource "oci_core_subnet" "vcn-private-subnet"{
    
      # Required
      compartment_id = "<compartment-ocid>"
      vcn_id = module.vcn.vcn_id
      cidr_block = "10.0.1.0/24"
     
      # Optional
      # Caution: For the route table id, use module.vcn.nat_route_id.
      # Do not use module.vcn.nat_gateway_id, because it is the OCID for the gateway and not the route table.
      route_table_id = module.vcn.nat_route_id
      security_list_ids = [oci_core_security_list.private-security-list.id]
      display_name = "private-subnet"
    }
  2. Speichern Sie die Datei private-subnet.tf.
    Hinweis

    Stellen Sie sicher, dass sich private-subnet.tf im Verzeichnis tf-vcn befindet.
  3. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for private subnet
    
    output "private-subnet-name" {
      value = oci_core_subnet.vcn-private-subnet.display_name
    }
    output "private-subnet-OCID" {
      value = oci_core_subnet.vcn-private-subnet.id
    }
  4. Speichern Sie die Datei outputs.tf.
    Stellen Sie sicher, dass sich alle *.tf-Dateien im selben Verzeichnis befinden. Terraform verarbeitet alle Dateien in einem Verzeichnis in der richtigen Reihenfolge, basierend auf ihrer Beziehung.
  5. Führen Sie Ihre Skripte aus.
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit das private Subnetz erstellt werden kann.

  6. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    2. Wählen Sie Ihr VCN aus.
    3. Wählen Sie auf der Detailseite Subnetze aus.
    4. Wählen Sie das private Subnetz aus (private-subnet).
    5. Suchen Sie auf der Detailseite die Routentabelle: nat-route.
    6. Wählen Sie Sicherheit oder Sicherheitslisten (je nach Anzeige) aus, und suchen Sie die Sicherheitsliste (security-list-for-private-subnet).

Herzlichen Glückwunsch. Sie haben erfolgreich ein privates Subnetz in Ihrem virtuellen Cloud-Netzwerk erstellt.

Erläuterung

Suchen Sie unter Argumentreferenz (oci_core_subnet) alle erforderlichen Argumente:

  • compartment_id
  • vcn_id
  • cidr_block
So navigieren Sie zu dieser URL

So navigieren Sie zur Argumentreferenz (oci_core_subnet):

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

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

  3. Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_subnet aus.
  4. Wählen Sie Argumentreferenz aus.

    Die Argumentreferenz wird geöffnet.

  • Überschreiben Sie die folgenden optionalen Argumente:
    • route_table_id
    • security_list_ids
    • display_name
  • Weisen Sie den folgenden Argumenten Werte zu:
    • cidr_block
      • Sehen Sie sich das erste Diagramm im Tutorial an.
    • route_table_id
      • Die OCID einer Routentabelle.
      • Referenzieren Sie das private Subnetz im ersten Diagramm des Tutorials, um die Gateways für diese Routentabelle anzuzeigen:
        • NAT-Gateway
        • Servicegateway
      • Weisen Sie die Routing-Tabelle mit dem NAT-Gateway zu, die Sie mit dem VCN-Modul erstellt haben. Diese Routentabelle enthält auch ein Servicegateway.
        Hinweis

        • Verwenden Sie module.vcn.nat_route_id.
        • Verwenden Sie nicht module.vcn.nat_gateway_id, weil es die OCID des Gateways und nicht die Routentabelle zurückgibt.
      • (Optional): Prüfen Sie in der Konsole die Regeln der Routentabelle, und vergleichen Sie die Werte für Zieltyp mit dem Tutorialdiagramm (Servicegateway, NAT-Gateway).
        1. Wählen Sie auf der Detailseite für Ihr VCN die Option Routing oder Routentabellen aus (je nach Anzeige).
        2. Wählen Sie nat-route.
        3. Wählen Sie Routingregeln aus.
    • security_list_ids
      • Gibt eine Liste mit Zeichenfolgen zurück, jeweils eine OCID einer Sicherheitsliste.
      • Rufen Sie die OCID der privaten Sicherheitsliste ab.
      • Verwenden Sie eckige Klammern für dieses Argument. Beispiel:
        security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
      • Um eine Sicherheitsliste zuzuweisen, setzen Sie diese in eckige Klammern ohne Kommas.
      • Um die mit einer anderen Ressource erstellte Sicherheitsliste zu referenzieren, verwenden Sie den lokalen Namen. Beispiel:
        security_list_ids = [oci_core_security_list.<local-name>.id]
        security_list_ids = [oci_core_security_list.private-security-list.id]
Öffentliches Subnetz erstellen

In diesem Abschnitt erstellen Sie ein öffentliches Subnetz in Ihrem Netzwerk und verknüpfen die öffentliche Sicherheitsliste mit diesem Subnetz. Sie fügen auch die Internetroutentabelle hinzu, die Sie mit dem VCN-Modul erstellt haben. Die Internetroutentabelle verfügt über ein Internetgateway und ist für öffentliche Subnetze konzipiert. Sehen Sie sich das erste Diagramm im Tutorial an.

  1. Erstellen Sie im Verzeichnis tf-vcn eine Datei mit dem Namen public-subnet.tf, und fügen Sie ihr den folgenden Code hinzu:
    # Source from https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_subnet
    
    resource "oci_core_subnet" "vcn-public-subnet"{
    
      # Required
      compartment_id = "<compartment-ocid>"
      vcn_id = module.vcn.vcn_id
      cidr_block = "10.0.0.0/24"
     
      # Optional
      route_table_id = module.vcn.ig_route_id
      security_list_ids = [oci_core_security_list.public-security-list.id]
      display_name = "public-subnet"
    }
  2. Speichern Sie die Datei public-subnet.tf.
    Hinweis

    Stellen Sie sicher, dass sich public-subnet.tf im Verzeichnis tf-vcn befindet.
  3. Fügen Sie den folgenden Code zu outputs.tf hinzu.
    # Outputs for public subnet
    
    output "public-subnet-name" {
      value = oci_core_subnet.vcn-public-subnet.display_name
    }
    output "public-subnet-OCID" {
      value = oci_core_subnet.vcn-public-subnet.id
    }
  4. Speichern Sie die Datei outputs.tf.
    Stellen Sie sicher, dass sich alle *.tf-Dateien im selben Verzeichnis befinden. Terraform verarbeitet alle Dateien in einem Verzeichnis in der richtigen Reihenfolge, basierend auf ihrer Beziehung.
  5. Führen Sie Ihre Skripte aus.
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit das öffentliche Subnetz erstellt werden kann.

  6. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    1. Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    2. Wählen Sie Ihr VCN aus.
    3. Wählen Sie auf der Detailseite Subnetze aus.
    4. Wählen Sie das öffentliche Subnetz aus (public-subnet).
    5. Suchen Sie auf der Detailseite die Routentabelle: internet-route.
    6. Wählen Sie Sicherheit oder Sicherheitslisten (je nach Anzeige) aus, und suchen Sie die Sicherheitsliste (security-list-for-public-subnet).

Herzlichen Glückwunsch. Sie haben erfolgreich ein öffentliches Subnetz in Ihrem virtuellen Cloud-Netzwerk erstellt.

Erläuterung

Suchen Sie unter Argumentreferenz (oci_core_subnet) alle erforderlichen Argumente:

  • compartment_id
  • vcn_id
  • cidr_block
So navigieren Sie zu dieser URL

So navigieren Sie zur Argumentreferenz (oci_core_subnet):

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

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

  3. Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_subnet aus.
  4. Wählen Sie Argumentreferenz aus.

    Die Argumentreferenz wird geöffnet.

  • Überschreiben Sie die folgenden optionalen Argumente:
    • route_table_id
    • security_list_ids
    • display_name
  • Weisen Sie den folgenden Argumenten Werte zu:
    • cidr_block
      • Sehen Sie sich das erste Diagramm im Tutorial an.
    • route_table_id
      • Die OCID einer Routentabelle.
      • Um das Gateway für diese Routentabelle anzuzeigen, referenzieren Sie das öffentliche Subnetz im ersten Diagramm des Tutorials:
        • Internetgateway
      • Weisen Sie die Routentabelle mit einem Internetgateway zu, das Sie mit dem VCN-Modul erstellt haben.
        Hinweis

        • Verwenden Sie module.vcn.ig_route_id.
      • (Optional): Prüfen Sie in der Konsole die Regeln der Routentabelle, und vergleichen Sie den Wert Zieltyp mit dem Tutorialdiagramm (Internetgateway).
        1. Wählen Sie auf der Detailseite für Ihr VCN die Option Routing oder Routentabellen aus (je nach Anzeige).
        2. Wählen Sie internet-route.
        3. Wählen Sie Routingregeln aus.
    • security_list_ids
      • Gibt eine Liste mit Zeichenfolgen zurück, jeweils eine OCID einer Sicherheitsliste.
      • Rufen Sie die OCID der öffentlichen Sicherheitsliste ab.
      • Verwenden Sie eckige Klammern für dieses Argument. Beispiel:
        security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
      • Um eine Sicherheitsliste zuzuweisen, setzen Sie diese in eckige Klammern ohne Kommas.
      • Um die mit einer anderen Ressource erstellte Sicherheitsliste zu referenzieren, verwenden Sie den lokalen Namen. Beispiel:
        security_list_ids = [oci_core_security_list.<local-name>.id]
        security_list_ids = [oci_core_security_list.public-security-list.id]

4. VCN neu erstellen (optional)

Löschen Sie Ihr VCN. Führen Sie dann die Skripte erneut aus, um ein anderes VCN zu erstellen.

Skripte ausführen

In den vorherigen Abschnitten haben Sie, zur Prüfung Ihrer Arbeit die Skripte jedes Mal ausgeführt, wenn Sie eine Ressource deklariert haben. Jetzt führen Sie sie zusammen aus. Sie stellen fest, dass die Skripte deklarativ sind und dass Terraform die Reihenfolge auflöst, in der die Objekte erstellt.

  1. Löschen Sie Ihr VCN mit Terraform:
    terraform destroy

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit die Ressource zerstört wird.

  2. (Optional) Sehen Sie sich die Beendigung auf der Konsole an:
    • Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    • Wählen Sie Ihr Compartment aus.
    • Sehen Sie, wie Ihr VCN aus der Liste ausgeblendet wird.
  3. Erstellen Sie ein neues virtuelles Cloud-Netzwerk mit Terraform:
    terraform init
    terraform plan
    terraform apply

    Wenn Sie zur Bestätigung aufgefordert werden, geben Sie yes ein, damit Ihre Ressourcen erstellt werden können.

    Nachdem Sie das Netzwerk erstellt haben, werden die von Ihnen definierten Ausgaben im Ausgabeterminal angezeigt.

    Hinweis

    Dieses neue virtuelle Cloud-Netzwerk verfügt über neue OCIDs für seine Ressourcen. Dieses Netzwerk ist nicht dasselbe, das Sie zerstört haben.
  4. (Optional) Sehen Sie sich die Erstellung auf der Konsole an:
    • Öffnen Sie das Navigationsmenü , und wählen Sie Networking aus. Wählen Sie dann Virtuelle Cloud-Netzwerke aus.
    • Wählen Sie Ihr Compartment aus.
    • Sehen Sie, wie Ihr neu erstelltes (neues) virtuelles Cloud-Netzwerk in der Liste der Netzwerke angezeigt wird.
  5. Zeigen Sie die Ausgaben erneut an.
    terraform output

Herzlichen Glückwunsch. Sie haben erfolgreich ein virtuelles Cloud-Netzwerk und die zugehörigen Komponenten mit Terraform in Ihrem Oracle Cloud Infrastructure-Account neu erstellt.

Hinweis

Dieses virtuelle Cloud-Netzwerk enthält dieselben Komponenten wie ein virtuelles Cloud-Netzwerk, das mit dem VCN-Assistenten starten in der Konsole mit der Option VCN mit Internetverbindung erstellt wurde. Sie können die Tutorialschritte unter Netzwerk einrichten ausführen und das Netzwerk dann mit diesem Netzwerk vergleichen.

Referenzen: