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

Weitere Informationen finden Sie unter:
Bevor Sie beginnen
Für eine erfolgreiche Ausführung des Tutorials benötigen Sie Folgendes:
- Ein bezahlter Oracle Cloud Infrastructure-Account. Siehe Kostenlose Oracle Cloud-Promotions anfordern und verwalten.
- Einen MacOS-, Linux- oder Windows-Rechner.
- Terraform-Tutorialressourcen:
- Gehen Sie durch alle Schritte in:
- Behalten Sie die Skripte bei, die Sie in den folgenden Verzeichnissen erstellt haben:
$HOME/tf-provider/
$HOME/tf-compartment/
- Behalten Sie das Compartment im Tutorial Compartment erstellen in Ihrem Mandanten bei.
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.
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 |
|
Region |
|
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.
- Ö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.
- Wählen Sie Ihr Compartment aus.
- Wählen Sie Policy erstellen aus.
- 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)
- Name:
- 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>
- Policy-Anwendungsfälle:
- 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.
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.
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.
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.
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"
- Beispiel:
- Innerhalb des Codeblocks:
- Fügen Sie
source
- undversion
-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"]
- Fügen Sie
Hinzufügen von Ausgabeblöcken zu Ihrem Code, um Informationen über Ihr virtuelles Cloud-Netzwerk abzurufen, nachdem Sie Ihre Skripte ausgeführt haben.
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"
- Das Label darf Buchstaben, Ziffern, Unterpunkte (
- 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.
- Starten Sie den Block mit dem Schlüsselwort:
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.
Suchen Sie unter Argumentreferenz (oci_core_security_list) alle erforderlichen Argumente (Aufzählungszeichen der ersten Ebene):
- compartment_id
- vcn_id
So navigieren Sie zur Argumentreferenz (oci_core_security_list):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
security list
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
- 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 auchoracle-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.
- zustandslos: Nein
- Zielort: 0.0.0.0/0
- IP-Protokoll: Alle Protokolle
Das Tabellenfeld Lässt zu wird automatisch basierend auf anderen Feldern generiert. Sie fügen in Ihrem Skript dafür kein Argument hinzu.
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 zur Argumentreferenz (oci_core_security_list):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
security list
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
- Wählen Sie Argumentreferenz aus.
Die Argumentreferenz wird geöffnet.
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
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.
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
Das Tabellenfeld Lässt Folgendes zu wird automatisch basierend auf anderen Feldern generiert. Sie fügen in Ihrem Skript dafür kein Argument hinzu.
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.
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 zur Argumentreferenz (oci_core_security_list):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
security list
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_security_list aus.
- 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
Herzlichen Glückwunsch. Sie haben erfolgreich eine weitere Sicherheitsliste in Ihrem virtuellen Cloud-Netzwerk erstellt.
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.
Herzlichen Glückwunsch. Sie haben erfolgreich ein privates Subnetz in Ihrem virtuellen Cloud-Netzwerk erstellt.
Suchen Sie unter Argumentreferenz (oci_core_subnet) alle erforderlichen Argumente:
- compartment_id
- vcn_id
- cidr_block
So navigieren Sie zur Argumentreferenz (oci_core_subnet):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
subnet
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_subnet aus.
- 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.
- Verwenden Sie
- (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).
- Wählen Sie auf der Detailseite für Ihr VCN die Option Routing oder Routentabellen aus (je nach Anzeige).
- Wählen Sie nat-route.
- 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]
- cidr_block
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.
Herzlichen Glückwunsch. Sie haben erfolgreich ein öffentliches Subnetz in Ihrem virtuellen Cloud-Netzwerk erstellt.
Suchen Sie unter Argumentreferenz (oci_core_subnet) alle erforderlichen Argumente:
- compartment_id
- vcn_id
- cidr_block
So navigieren Sie zur Argumentreferenz (oci_core_subnet):
- Gehen Sie zu Oracle Cloud Infrastructure-Provider.
- Geben Sie im Feld Filter oben links
subnet
ein.Die Ergebnisse werden für Datenquellen und Ressourcen zurückgegeben.
- Gehen Sie unter Core zu Ressourcen, und wählen Sie oci_core_subnet aus.
- 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).
- Wählen Sie auf der Detailseite für Ihr VCN die Option Routing oder Routentabellen aus (je nach Anzeige).
- Wählen Sie internet-route.
- 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]
- cidr_block
4. VCN neu erstellen (optional)
Löschen Sie Ihr VCN. Führen Sie dann die Skripte erneut aus, um ein anderes VCN zu erstellen.
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.
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.
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:
Weitere Schritte
Das nächste Terraform-Tutorial finden Sie unter:
Weitere Informationen zur Entwicklung mit Oracle-Produkten finden Sie auf folgenden Websites: