Hinweis:

Oracle Cloud Infrastructure Architect Professional-Zertifizierung mit Terraform beschleunigen

Einführung

Um die Oracle Cloud Infrastructure (OCI) Architect Professional-Zertifizierung zu erlangen, sind ein umfassendes Verständnis der Oracle Cloud und praktische Erfahrungen erforderlich. Dieses Tutorial beschleunigt Ihre Reise, indem Sie Infrastructure as Code (IaC) mit Terraform nutzen.

Abbildung 0

Abbildung 1 unten zeigt die bereitzustellende OCI-Zielarchitektur. Auf der rechten Seite wird ein strukturierter Ansatz für das OCI Architect Professional Certification-Labor (2024) beschrieben, das in sieben aufeinanderfolgende Schritte unterteilt ist. Durch die Nutzung vordefinierter Terraform-Code-Snippets, die auf die Zertifizierungsprüfungslabors zugeschnitten sind, werden sich wiederholende Aufgaben automatisiert, sodass sich wertvolle Zeit für das Meistern wesentlicher OCI-Konzepte lässt. Dieser Ansatz beschleunigt nicht nur den Abschluss von Labors, sondern fördert auch ein tieferes Verständnis der Plattform.

Abbildung 1 Abbildung 1: OCI Architecture Professional Certification Lab 1 – Architektur und manueller vs. automatisierter Prozess

Nachteil manueller Methoden

Manuelle Ansätze für die praktischen Übungen zur OCI-Zertifizierungsprüfung können eine erhebliche Hürde darstellen. Einige Nachteile sind:

Schnellere Bewältigung von OCI-Kompetenzen: Die Kraft der Automatisierung

Dieses Tutorial zeigt, wie Sie die OCI-Zertifizierung beschleunigen können, indem Sie Aufgaben automatisieren, sich auf Kernkompetenzen konzentrieren und die Praxiszeit verkürzen.

Wichtige Vorteile:

Weitere Vorteile:

Um Ihren Weg zur OCI Architect Professional Certification (2024) zu beschleunigen, automatisieren wir Lab 1: Oracle Cloud Infrastructure Architect Professional, das in Abbildung 1 mit Terraform dargestellt ist. Dieser automatisierte Ansatz kann auf andere Zertifizierungslabors und Cloud-Bereitstellungen in der realen Welt ausgeweitet werden.

Netzwerksicherheitsgruppe (NSG) als Ingress-Quelle zu einer anderen NSG anstelle von CIDR-Block

In diesem Tutorial werden Netzwerksicherheitsgruppen in OCI untersucht und erläutert, wie sie den Netzwerktraffic in einem virtuellen Cloud-Netzwerk (VCN) granular kontrollieren. Netzwerksicherheitsgruppen fungieren als virtuelle Firewalls und kontrollieren den Netzwerkzugriff auf Ressourcen in einem VCN. Dazu gehören beispielsweise OCI Compute-Instanzen, Kubernetes-Cluster oder Datenbanken. Netzwerksicherheitsgruppen bieten mehr Flexibilität als Sicherheitslisten, da sie die Kontrolle zwischen Ressourcen und nicht nur zwischen Subnetzen ermöglichen.

Halbautomatisierter Hybridansatz in 7 Schritten

Die praktischen Übungen zur OCI Architect Professional-Zertifizierung sind zwar umfassend, können aber zeitaufwendig sein. Ziehen Sie Lab 1: Oracle Cloud Infrastructure Architect Professional in Betracht, das mindestens 25 Minuten dauert. Durch die Automatisierung sich wiederholender Aufgaben wie VCN-, NSG- und Virtual-Machine-(VM-)Erstellung mit Terraform können Sie dieses Mal um bis zu 80% reduzieren und sich auf Kernsicherheitskonzepte anstatt auf mühsame manuelle Schritte konzentrieren. Der vorgeschlagene halbautomatische Ansatz bietet Flexibilität, sodass Sie wählen können, welche Aufgaben automatisiert werden sollen.

Ziele

Voraussetzungen

Aufgabe 1: Virtual Cloud Network (VCN) erstellen

Manuelle Option:

Mit dem OCI-VCN-Assistenten können Sie Core-Netzwerkressourcen erstellen: VCN, Internetgateway, Routentabelle, Sicherheitsliste, öffentliche und private Subnetze. Weitere Informationen finden Sie unter Virtuelle Netzwerke - Schnellstart.

  1. Gehen Sie zur OCI-Konsole, navigieren Sie zu Networking, Virtuelle Cloud-Netzwerke, und erstellen Sie ein neues VCN.

  2. Klicken Sie auf VCN-Informationen, und notieren Sie sich die OCIDs für das VCN, das private Subnetz und das öffentliche Subnetz (Abbildung 2).

  3. Fügen Sie die OCIDs der Datei input.auto.tfvars (oder terraform.tfvars) hinzu, wie im Abschnitt "Deployment-Optionen" dargestellt.

Standardmäßig ist das Flag create_vcn deaktiviert (erstellen Sie das VCN manuell über die OCI-Konsole). Erfassen Sie die VCN-OCID und die Subnetz-OCIDs, und fügen Sie sie der Datei input.auto.tfvars hinzu.

# Step 1a - Create VCN using VCN Wizard (create_vcn flag off)
create_vcn = false

# Copy from the console the VCN OCIDs and subnets (public, Private) OCIDs.
vcn_id            = "REPLACE_CREATED_VCN_OCID_HERE"
private_subnet_id = "REPLACE_CREATED_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id  = "REPLACE_CREATED_PUBLIC_SUBNET_OCID_HERE"

image Abbildung 2: Konsolen-VCN-Ansicht zum Erfassen der VCN-OCID, der OCID des öffentlichen Subnetzes und der OCID des privaten Subnetzes

Automatisierte Option:

Erstellen Sie das VCN mit den folgenden Schritten.

  1. Um das VCN und alle Netzwerkressourcen automatisch zu erstellen, setzen Sie das Flag create_vcn in der Datei input.auto.tfvars auf true.

  2. Geben Sie VCN, öffentliches Subnetz, CIDR-Blöcke privater Subnetze und Hostnamenspräfix an.

    # Step 1b - Create VCN using Terraform. Provided the CIDR Blocks for the
    #           VCN, Subnets and all other required input (host_name_prefix).
    create_vcn = true
    
    # Provide the VCN & Subnet CIDR Blocks as well as host name prefix
    vcn_cidr_block            = "10.0.0.0/16"
    public_subnet_cidr_block  = "10.0.0.0/24"
    private_subnet_cidr_block = "10.0.1.0/24"
    host_name_prefix          = "phxapl4"
    

Aufgabe 2: Zwei NSGs erstellen (NSG-01 und NSG-02)

Manuelle Option:

Erstellen Sie zwei NSGs (NSG-01 und NSG-02) mit den folgenden Schritten:

  1. Wählen Sie das in Aufgabe 1 erstellte VCN aus.

  2. Klicken Sie unter Ressourcen auf Network Security Groups.

  3. Klicken Sie auf Netzwerksicherheitsgruppe erstellen, und geben Sie die folgenden Informationen ein.

    • Name: Geben Sie einen Namen ein. Beispiel: <REGION-KEY>-AP-LAB01-NSG-01.
    • Create-In-Compartment: Geben Sie das Arbeits-Compartment ein.
    • Klicken Sie auf Erstellen.
  4. Wiederholen Sie die Schritte 1 bis 3 für die zweite NSG namens <REGION-KEY>-AP-LAB01-NSG-02.

Automatisierte Option:

Der folgende Terraform-Code erstellt zwei NSGs (NSG-01 und NSG-02).

resource "oci_core_network_security_group" "nsg-01" {
  count = (var.create_vcn && var.create_nsg_1) ? 1 : 0

  #Required
  compartment_id = var.compartment_id
  vcn_id         = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
  display_name   = "${var.display_name_prefix}-TF-NSG-01"
}

resource "oci_core_network_security_group" "nsg-02" {
  count = (var.create_vcn && var.create_nsg_2) ? 1 : 0

  #Required
  compartment_id = var.compartment_id
  vcn_id         = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
  display_name   = "${var.display_name_prefix}-TF-1-NSG-02"
}

Um die beiden NSGs zu erstellen, setzen Sie die Flags create_nsg_1 und create_nsg_2 auf true.

# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true

Aufgabe 3: Vier VMs mit Terraform starten und Ping-Test für Internet Control Message Protocol (ICMP) ausführen

Es wird davon ausgegangen, dass Sie mit dem manuellen Starten von VMs über die OCI-Konsole vertraut sind. Weitere Informationen finden Sie unter Instanzen erstellen.

Hinweis: Wir behandeln nur die Terraform-Automatisierungsoption zum Erstellen von 4 VMs (3 VMs im öffentlichen Subnetz und 1 VM im privaten Subnetz).

Aktivieren Sie das Flag create_vm_1_3, um Terraform anzuweisen, drei VMs (VM-01, VM-02 und VM-03) zu erstellen.

# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true

Um drei Compute-Instanzen innerhalb des öffentlichen Subnetzes zu erstellen, haben wir das Metaargument count im folgenden Terraform-Code verwendet. Dieser prägnante Ansatz vereinfacht den Erstellungsprozess im Vergleich zum komplexeren for_each-Metaargument. Wenn Sie count auf 3 setzen, werden automatisch Instanzen mit den Indizes 0, 1 und 2 generiert, was die Lesbarkeit und Effizienz von Code verbessert.

resource "oci_core_instance" "VM1-3" {
  count = (var.create_vm_1_3) ? 3 : 0

  availability_domain         = "GqIF:PHX-AD-1"
  compartment_id              = var.compartment_id
  create_vnic_details {
    assign_ipv6ip             = "false"
    assign_private_dns_record = "true"
    assign_public_ip          = "true"
    subnet_id                 = var.create_vcn ? oci_core_subnet.My-Public-Subnet.*.id[0] : var.public_subnet_id
    #nsg_ids                   = (var.create_vcn && var.create_nsg_1) && (count.index == 2) ? [oci_core_network_security_group.nsg-1.*.id[0]] : []
    nsg_ids = (var.automate_step_4 && var.create_nsg_1) ? (var.create_vcn ? [oci_core_network_security_group.nsg-1.*.id[0]] : [oci_core_network_security_group.nsg-01.*.id[0]]) : [] 

  }

  display_name  = "${var.display_name_prefix}-VM-0${count.index + 1}"
  metadata = {
    "ssh_authorized_keys"     = "${file(var.ssh_public_key)}"
  }

  shape                       = "VM.Standard.A1.Flex"
  shape_config {
    memory_in_gbs             = "6"
    ocpus                     = "1"
  }

  source_details {
    source_id                = var.amper_image_id
    source_type              = "image"
  }
}

Hinweis: Um über SSH auf die öffentlichen VMs zuzugreifen, generieren Sie Ihr eigenes SSH-Schlüsselpaar. Weitere Informationen finden Sie unter SSH-Schlüssel generieren.

Aktivieren Sie als Nächstes das Flag create_vm_4, um Terraform anzuweisen, VM-04 im privaten Netzwerk zu erstellen.

# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4   = true

Dies ist der Teil des Terraform-Codes, der die vierte Instanz (VM-04) im privaten Subnetz erstellt.

resource "oci_core_instance" "vm-4" {
  count = (var.create_vm_4) ? 1 : 0

  availability_domain         = "GqIF:PHX-AD-1"
  compartment_id              = var.compartment_id

  create_vnic_details {
    #assign_ipv6ip            = "false"
    assign_private_dns_record = "true"
    assign_public_ip          = "false"
    subnet_id                 = var.create_vcn ? oci_core_subnet.My-Private-Subnet.*.id[0] : var.private_subnet_id
    #nsg_ids                   = (var.create_vcn && var.create_nsg_1) ? [oci_core_network_security_group.nsg-2.*.id[0]] : []
    nsg_ids = (var.automate_step_6 && var.create_nsg_2) ? (var.create_vcn ? [oci_core_network_security_group.nsg-2.*.id[0]] : [oci_core_network_security_group.nsg-02.*.id[0]]) : []                                    
  }

  display_name                = "${var.display_name_prefix}-VM-04"
  shape                       = "VM.Standard.A1.Flex"
  shape_config {
    memory_in_gbs             = "6"
    ocpus                     = "1"
  }

  source_details {
    source_id                = var.amper_image_id
    source_type              = "image"
  }
}

Manuelles ICMP-Echo-Testing: Beobachtung der Auswirkungen von NSGs auf den Traffic.

  1. Gehen Sie zur OCI-Konsole, und navigieren Sie zu Compute und Instanzen. Alle vier Instanzen werden aufgelistet.

  2. Notieren Sie sich die öffentlichen IP-Adressen der drei Instanzen (VM-01, VM-02, VM-03).

  3. Pingen Sie von Ihrem Computer aus die öffentliche IP-Adresse jeder VM-Instanz.

Erwartete Ergebnisse:

Automatisiertes ICMP-Echo-Testen: Dieser Test wird mit dem Terraform-local-exec-Provisioner automatisiert.

Bearbeiten Sie die Datei input.auto.tfvars, um den Wert der Variablen icmp_ping_count festzulegen. Um das Pingen jeder der drei öffentlichen VMs von Ihrem lokalen Computer zu aktivieren, setzen Sie die icmp_pingvm?_fromlocal-Flags auf true (wobei 1, 2 oder 3 für die spezifische VM steht).

# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true

Aufgabe 4: ICMP-Ingress-Traffic konfigurieren und vNICs an NSG-01 anhängen

Manuelle Option:

Die folgenden Unteraufgaben, die zur Konfiguration des Traffics zwischen VM-03 und NSG-01 erforderlich sind.

Aufgabe 4.1: Neue Ingress-Regel in Networking hinzufügen

Um die erste NSG (NSG-01) zu aktualisieren, führen Sie die in Abbildung 3 beschriebenen Schritte aus.

  1. Wählen Sie Ihr VCN aus.

  2. Wählen Sie unter Netzwerksicherheitsgruppen die Option NSG-01 aus, und klicken Sie auf Regeln hinzufügen.

  3. Geben Sie die folgenden Informationen ein, und klicken Sie auf Hinzufügen.

    • Quelltyp: Geben Sie CIDR ein.
    • Quell-CIDR: Geben Sie "0.0.0.0/0" ein.
    • IP-Protokoll: Wählen Sie ICMP.
    • Typ: Geben Sie 8 ein.
    • Code: Wählen Sie Alle aus.

    image Abbildung 3: Ingress-Regel zu NSG-01 hinzufügen, um ICMP-Ping aus dem Internet zu ermöglichen

Aufgabe 4.2: Dritte VM (VM-03) so konfigurieren, dass sie auf NSG-01 verweist

Um NSG-01 an die virtuelle Netzwerkschnittstelle VM-03 (VNIC) anzuhängen, führen Sie die in Abbildung 4 beschriebenen Schritte aus.

  1. Klicken Sie unter Compute auf Instanzen, VM-03 und Details anzeigen.

  2. Wählen Sie die angehängte vNICs aus, und klicken Sie auf Primäre vNIC.

  3. Klicken Sie unter vNIC-Informationen neben Netzwerksicherheitsgruppe auf den Link Bearbeiten, und wählen Sie NSG-01 aus.

  4. Klicken Sie auf Änderungen speichern.

image Abbildung 4: NSG-01 an VM-03 vNIC anhängen

Automatisierte Option:

Gehen Sie zur Datei input.auto.tfvars, und aktivieren Sie das Flag automate_step_4.

# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true

Hinweise:

Manuelle Prüfung: Führen Sie einen zweiten ICMP-Echo-Test (ping) zu den öffentlichen IP-Adressen der VMs VM-01, VM-02 und VM-03 von Ihrem lokalen Computer aus durch.

Ergebnisse:

Automatisierte Prüfung: Navigieren Sie zur Datei input.auto.tfvars, und setzen Sie alle icmp_pingvm?_fromlocal-Flags auf "true" (wobei 1, 2 oder 3 die spezifische VM darstellt).

# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true

Aufgabe 5: ICMP-Ping ausführen, bevor die beiden NSGs verschachtelt werden

Manuelle Option:

Versuchen Sie zunächst, die private IP-Adresse von VM-04 von den drei öffentlichen VMs zu pingen.

Erwartete Ergebnisse: Alle Ping-Versuche verlaufen nicht erfolgreich. Um die Konnektivität zu ermöglichen, ist eine verschachtelte NSG-Architektur erforderlich.

Automatisierte Option:

Setzen Sie das Flag icmp_test_from_vm? für jede öffentliche VM (VM-01, VM-02 und VM-03) auf "true". Ersetzen Sie sie durch die spezifische VM-Nummer (1, 2 oder 3) in jedem Flag-Namen.

# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true

Bei dieser Option wird der Terraform-Provisioner remote-exec verwendet, um die ICMP-Tests zu automatisieren. Sie müssen den SSH-Private Key angeben, der dem Public Key entspricht, der beim Erstellen von VMs verwendet wird. Das Shellskript ping_script.sh iteriert durch die Anzahl der von icmp_ping_count definierten Ping-Versuche.

resource "null_resource" "icmp_ping_vm4_from_vm1" {
  depends_on = [oci_core_instance.VM1-3[0]]
  count      = (var.icmp_test_from_vm1) ? 1 : 0

  connection {
    agent       = false
    host        = oci_core_instance.VM1-3[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key)
  }

  # At this stage we assume that the ping_script.sh is copied under /home/opc
  provisioner "remote-exec" {
    inline = [
      "echo \" PING PRIVATE IP ${oci_core_instance.vm-4[0].private_ip}\"",
      "chmod +x ping_script.sh",
      "export TARGET_IP=${oci_core_instance.vm-4[0].private_ip}",
      "export PING_COUNT=${var.icmp_ping_count}",
      "sh ping_script.sh",
    ]
  }
}

Aufgabe 6: Verschachtelte NSGs konfigurieren (NSG-01 und NSG-02)

Manuelle Option:

Konfigurieren Sie die zweite NSG (NSG-02) mit einer Ingress-Regel, die NSG-01 als Quelle angibt, und aktivieren Sie den ICMP-Trafficfluss zwischen den beiden NSGs.

Aufgabe 6.1: Ingress-Regel in Networking hinzufügen (virtuelles Cloud-Netzwerk)

  1. Klicken Sie unter Ihrem VCN (VCN-01) auf Sicherheitsregeln.

  2. Wählen Sie NSG-02 aus, und klicken Sie auf Regeln hinzufügen.

  3. Geben Sie die folgenden Informationen ein, und klicken Sie auf Hinzufügen.

    • Quelltyp: Wählen Sie Netzwerksicherheitsgruppe aus.
    • Quelle: Geben Sie NSG-01 ein.
    • IP-Protokoll: Wählen Sie ICMP.
    • Typ: Geben Sie 8 ein.
    • Code: Wählen Sie Alle aus.

    image Abbildung 5: NSG-01 als Quelle zur NSG-02-Ingress-Regel hinzufügen

Aufgabe 6.2: Vierte VM (VM-04) so konfigurieren, dass sie auf NSG-02 verweist

  1. Klicken Sie unter vNIC-Informationen der VM-04 (Abbildung 6) neben der NSG auf den Link Bearbeiten, und wählen Sie NSG-02 aus.

  2. Klicken Sie auf Änderung speichern.

image Abbildung 6: NSG-02 an VM-04 vNIC anhängen

Automatisierte Option:

Um diese Aufgabe zu automatisieren, setzen Sie automate_step_6 in der Datei input.auto.tfvars auf "true".

# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true

Aufgabe 7: Letzte ICMP-Echo-Tests für verschachtelte NSGs ausführen

Manueller End-to-End-Test:

Versuchen Sie erneut, die private IP-Adresse von VM-04 von den öffentlichen VMs zu pingen.

  1. Stellen Sie eine SSH-Verbindung zu den drei Instanzen im öffentlichen Subnetz her (VM-01, VM-02, VM-03).

  2. Pingen Sie jeweils die private IP von VM-04. Nur VM-03 ist erfolgreich, wie in Abbildung 1 dargestellt.

Erläuterung: Die vNIC von VM-04 unterliegt jetzt den Regeln in NSG-02 und den Regeln der Standardsicherheitsliste. NSG-01 ist als Ingress-Regelquelle für NSG-02 konfiguriert, die Traffic aus dem Internet zulässt.

Automatisierte End-to-End-Tests:

Aktivieren Sie Terraform, um ICMP-Echo-Ping-Tests automatisch auszuführen.

  1. Setzen Sie das Flag icmp_test_from_vm? für jede der 3 VMs (VM-01, VM-02 und VM-03) auf true.

  2. Wie im linken Teil von Abbildung 1 dargestellt, pingt nur VM-03 VM-04 erfolgreich.

# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true

Abbildung 7 zeigt die Ergebnisse mehrerer ICMP-Pingversuche nach dem Herstellen einer SSH-Verbindung zu VM-03. Die Abbildung vergleicht das Ping-Ergebnis vor und nach der Implementierung verschachtelter NSGs.

image Abbildung 7: Ping-Ergebnisse vor und nach dem Verschachteln von NSG-02 in NSG-01 und Anhängen von vNICs an VMs

Hinweis: Wenn Sie Terraform verwenden, erstellen Sie VMs nach dem Wechsel von der manuellen Konfiguration neu, um eine ordnungsgemäße Verknüpfung von NSG-02 mit der VM-04 vNIC sicherzustellen.

Deployment-Optionen

Option 1: Terraform-Befehlszeilenschnittstelle (CLI) verwenden (Community Edition)

Bevor Sie die Terrafrom-Befehle ausführen, um Ihre Infrastruktur mit der Terraform-CLI zu planen und bereitzustellen, müssen Sie die bereitgestellte Terraform-Konfiguration mit Ihren spezifischen Umgebungsdetails von Ihrem lokalen Rechner oder remote auf der OCI Cloud Shell aktualisieren. Laden Sie den vollständigen Terraform-Quellcode hier herunter: oci-blog-fast-tracking-apcertif-main.zip. Die einzige Datei, die Sie für Ihre Umgebung anpassen müssen, ist die Datei input.auto.tfvars (ähnlich benannte Datei ist terraform.tfvars). Sie können beispielsweise die OCIDs des verwendeten Computerimages (amper_image_id) und des Compartments (compartment_id) angeben, in dem die Übungsressourcen erstellt werden (ändern Sie die Standardwerte nur bei Bedarf). Das Package enthält umfassende Anweisungen zum Einrichten Ihrer Umgebung, zum Ausführen von Übungen sowie zum Verständnis von Netzwerk- und Sicherheitskonzepten. Es enthält detaillierte Anleitungen, Tipps und Best Practices, um Ihre OCI Advanced Learning-Erfahrung zu verbessern.

##########################################################################
# Terraform module: Nested NSGs - NSG-01 as Ingress source to NSG-02.    #
#                                                                        #
# Copyright (c) 2024 Oracle        Author: Mahamat Hissein Guiagoussou   #
##########################################################################

# Working Compartment
compartment_id = "REPLACE_WORKING_COMPARTMENT_OCID_HERE"

# Image OCID - https://docs.oracle.com/en-us/iaas/images/
amper_image_id = "REPLACE_INSTANCE_REGIONAL_IMAGE_OCID_HERE"

# Region based display name prefix
display_name_prefix = "AP-LAB01-1" # Replace with your own prefix

##########################################################################
# Step 1a - Create VCN using VCN Wizard (turn off the create_vcn flag),  #
##########################################################################
create_vcn        = false
vcn_id            = "REPLACE_VCN_OCID_HERE"
private_subnet_id = "REPLACE_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id  = "REPLACE_PUBLIC_SUBNET_OCID_HERE"

##########################################################################
# Step 1b - Create VCN using Terraform. Provide the CIDR Blocks for the  #
#           VCN, Subnets and other required input (host_name_prefix).    #
##########################################################################
cvcn_cidr_block           = "10.0.0.0/16"
public_subnet_cidr_block  = "10.0.0.0/24"
private_subnet_cidr_block = "10.0.1.0/24"
host_name_prefix          = "phxapl4"

##########################################################################
# Step 2: Create two(2) empty Network Security Groups: NSG-01 & NSG-02.  #
##########################################################################
create_nsg_1 = false
create_nsg_2 = false

##########################################################################
# Step 3a: Launch three VMs(VM-01, VM-02, VM-03) in the public subnet.   #
##########################################################################
create_vm_1_3 = false

##########################################################################
# Step 3b: Launch the fouth VM (VM-04) in the private subnet.            #
##########################################################################
create_vm_4 = false

# Shape Definition
shape_name  = "VM.Standard.A1.Flex"
shape_memory_in_gbs = "6"
shape_numberof_ocpus = "1"

# Ping all public VM from Local Computer
icmp_pingvm1_fromlocal = false
icmp_pingvm2_fromlocal = false
icmp_pingvm3_fromlocal = false

# Compute Instance SSH keys
ssh_public_key  = "~/cloudshellkey.pub"
ssh_private_key = "~/cloudshellkey"

# Ping VM-04 from Public VMs (VM-02, VM-02, and VM-03) via SSH
icmp_test_from_vm1 = false
icmp_test_from_vm2 = false
icmp_test_from_vm3 = false

##########################################################################
# Step 4: Add CIDR ingress rule in Network & Attach VM3 vNIC with NSG-01 #
##########################################################################
automate_step_4 = false

##########################################################################
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).     #
##########################################################################

##########################################################################
# Step 6: Add NSG-01 as ingress rule source, Attach VM4 vNIC with NSG-02 #
##########################################################################
automate_step_6 = false

##########################################################################
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).    #
##########################################################################

# Number of time ping is executed
icmp_ping_count =  "REPLACE_NUMBER_OF_PING_ATTEMPTS_HERE"

Option 2: Oracle Resource Manager (Variablen-Eingabebeispiele)

Erstellen Sie einen Oracle Resource Manager-Stack, indem Sie Variablen definieren (z.B. amper_image_id, compartment_id), Netzwerkressourcen bereitstellen (create_vcn, create_msg_1/2), VMs erstellen (create_vm_1_3, create_vm_4, shape_name), ICMP-Pings (icmp_pingvm1_fromlocal, icmp_test_from_vm1) und den Plan zum Deployment der Infrastruktur ausführen.

image

Nächste Schritte

Infrastructure-as-Code-Prinzipien (IaC) unter Verwendung von Terraform verbessern das Infrastrukturmanagement durch beschleunigtes Deployment und verbesserte Sicherheit erheblich. Beispiel: Die manuelle Konfiguration verschachtelter NSGs in der OCI Architect Professional Certification (2024) Lab 1: Become an OCI Architect Professional (2024) dauert in der Regel etwa 25 Minuten.

Durch die Nutzung von Terraform konnten wir den Zeitaufwand für das Provisioning und die Konfiguration komplexer OCI-Ressourcen erheblich reduzieren und einen erheblichen Effizienzgewinn demonstrieren. Dies führt zu messbaren Zeit- und Kosteneinsparungen für OCI-Benutzer, die komplexe Netzwerksicherheitskonfigurationen verwalten. Darüber hinaus fördert IaC die Konsistenz und reduziert das Risiko menschlicher Fehler, was es zu einem wertvollen Modell sowohl für das Lernen als auch für die Implementierungen realer Kunden macht. Um mehr über die Anwendung von IaC mit Terraform oder anderen ähnlichen Tools für Ihre OCI-Automatisierungsanforderungen zu erfahren, sollten Sie die erlernten Prinzipien in den verbleibenden OCI Architect Professional Certification Labs anwenden, während Sie die OCI Reference Architecture und Best Practices untersuchen.

Danksagungen

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.