Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Accelera la certificazione Oracle Cloud Infrastructure Architect Professional con Terraform
Introduzione
Ottenere la certificazione Oracle Cloud Infrastructure (OCI) Architect Professional richiede una conoscenza approfondita di Oracle Cloud e un'esperienza pratica. Questa esercitazione accelera il tuo percorso sfruttando Infrastructure as Code (IaC) con Terraform.
Nella figura 1 riportata di seguito viene illustrata l'architettura OCI di destinazione da distribuire. Il lato destro delinea un approccio strutturato al laboratorio OCI Architect Professional Certification (2024), diviso in sette fasi sequenziali. Sfruttando frammenti di codice Terraform predefiniti personalizzati in base ai laboratori per gli esami di certificazione, le attività ripetitive vengono automatizzate, consentendo di dedicare tempo prezioso alla padronanza dei concetti essenziali di OCI. Questo approccio non solo accelera il completamento del laboratorio, ma favorisce anche una più profonda comprensione della piattaforma.
Figura 1: OCI Architecture Professional Certification Lab 1 - Architettura e manuale rispetto al processo automatizzato
Svantaggio dei metodi manuali
Gli approcci manuali ai laboratori pratici per gli esami di certificazione OCI possono essere un ostacolo significativo. Alcuni svantaggi sono:
- Rischio di errori: i task manuali ripetitivi aumentano il rischio di errori umani, con conseguenti errori di battitura, passaggi mancati e ritardi.
- Time Consuming: i flussi di lavoro complessi richiedono molto tempo, ostacolando l'avanzamento e limitando le procedure.
- Non scalabile: richiede la copia e l'incolla, introduce errori e moltiplica gli sforzi di correzione.
- Test dei punti critici: la valutazione delle attività manuali è soggettiva e ostacola la misurazione e la disponibilità accurate delle prestazioni.
- Carenze nella documentazione: Dipende dall'input umano informale, da pratiche e sfide incoerenti nella gestione delle procedure.
- Oltre il dolore manuale:
- I metodi tradizionali creano una pressione tutto o niente. Un singolo passo mancato può far deragliare il progresso aggiungendo stress inutile e oscurando la vera comprensione.
- Questi metodi sfumano la linea tra le competenze essenziali e le attività obbligatorie. Un tempo di pratica prezioso viene perso in un'impostazione noiosa, ostacolando l'apprendimento e la padronanza delle competenze OCI.
Padroneggia più velocemente le competenze OCI: la potenza dell'automazione
Questo tutorial mostra come accelerare la certificazione OCI automatizzando le attività, concentrandosi sulle competenze di base e abbreviando i tempi di pratica.
Vantaggi principali:
- Focused Learning: automatizza le attività ripetitive, concedendo tempo per padroneggiare i concetti di base e approfondendo la comprensione e la fidelizzazione delle conoscenze.
- Pratica on-demand: acquisisci flessibilità scegliendo quale parte dei laboratori automatizzare, personalizzare il ritmo di apprendimento e accelerare la preparazione.
- Migliora l'efficienza: riduci i tempi di preparazione fino all'80% attraverso l'automazione.
Vantaggi aggiuntivi:
- Scalabilità ed efficienza in termini di costi: esegui facilmente lo scale-up o lo scale-down dell'infrastruttura in base alla domanda, con conseguente risparmio sui costi.
- Errori ridotti: elimina l'errore umano, assicurati che il provisioning dell'infrastruttura venga sempre eseguito in modo sicuro e corretto.
Per accelerare il tuo percorso di certificazione OCI Architect Professional (2024), automatizzeremo il Lab 1: Oracle Cloud Infrastructure Architect Professional illustrato nella Figura 1 utilizzando Terraform. Questo approccio automatizzato può essere esteso ad altri laboratori di certificazione e implementazioni cloud reali.
Gruppo di sicurezza di rete (NSG) come origine in entrata in un altro gruppo NSG anziché blocco CIDR
Questa esercitazione esplora i gruppi di sicurezza di rete in OCI e il modo in cui forniscono un controllo granulare sul traffico di rete all'interno di una rete cloud virtuale (VCN). I gruppi di sicurezza di rete fungono da firewall virtuali, controllando l'accesso di rete alle risorse all'interno di una VCN. Ciò include, ad esempio, istanze di OCI Compute, cluster Kubernetes o database. I gruppi di sicurezza di rete offrono una maggiore flessibilità rispetto alle liste di sicurezza abilitando il controllo tra le risorse anziché solo tra le subnet.
Approccio ibrido semi-automatico in 7 passaggi
I laboratori pratici sulla certificazione OCI Architect Professional, seppure completi, possono richiedere molto tempo. Prendi in considerazione Lab 1: Oracle Cloud Infrastructure Architect Professional, che richiede almeno 25 minuti per il completamento. Automatizzando la creazione di attività ripetitive come VCN, NSG e virtual machine (VM) con Terraform, puoi ridurre questa volta fino all'80%, concentrandoti sui concetti di sicurezza di base piuttosto che su noiosi passi manuali. L'approccio semi-automatico proposto offre flessibilità, consentendo di scegliere quali attività automatizzare.
Obiettivi
- Accelera la preparazione alla certificazione Oracle Cloud Infrastructure Architect Professional con Terraform.
Prerequisiti
-
Familiarità con Infrastructure as Code (IaC) e con le funzioni di base di Terraform.
-
Conoscenza di base di Terraform. I principianti devono completare l'Oracle Cloud Infrastructure Architect Professional o qualsiasi guida per principianti come Terraform for_each: una semplice esercitazione con esempi.
-
Uso di OCI Cloud Shell, Oracle Resource Manager (ORM) o IDE (ad esempio, Visual Studio) con il plugin Terraform.
Task 1: creare una rete cloud virtuale (VCN)
Opzione manuale:
Utilizzare la procedura guidata VCN OCI per creare risorse di rete di base: VCN, gateway Internet, tabella di instradamento, lista di sicurezza, subnet pubbliche e private. Per ulteriori informazioni, vedere Avvio rapido al networking virtuale.
-
Andare alla console OCI, andare a Networking, Reti cloud virtuali e creare una nuova VCN.
-
Fare clic su Informazioni sulla VCN e annotare gli OCID della VCN, della subnet privata e della subnet pubblica (figura 2).
-
Aggiungere gli OCID nel file
input.auto.tfvars
(oterraform.tfvars
) come illustrato nella sezione delle opzioni di distribuzione.
Per impostazione predefinita, il flag create_vcn
è disattivato (creare manualmente la VCN dalla console OCI). Raccogliere l'OCID VCN, gli OCID subnet e aggiungerli al file input.auto.tfvars
.
# 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"
Figura 2: Vista della VCN della console per raccogliere l'OCID della VCN, l'OCID della subnet pubblica e l'OCID della subnet privata
Opzione automatizzata:
Creare la VCN utilizzando i passi riportati di seguito.
-
Per creare automaticamente la VCN e tutte le risorse di rete, impostare il flag
create_vcn
sutrue
nel fileinput.auto.tfvars
. -
Specificare la VCN, la subnet pubblica, i blocchi CIDR delle subnet private e il prefisso del nome host.
# 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"
Task 2: Creare due gruppi NSG (NSG-01 e NSG-02)
Opzione manuale:
Creare due gruppi NSG (NSG-01 e NSG-02) utilizzando i passi riportati di seguito.
-
Selezionare la VCN creata nel task 1.
-
In Risorse, fare clic su Gruppi di sicurezza di rete.
-
Fare clic su Crea gruppo di sicurezza di rete e immettere le informazioni seguenti.
- Nome: immettere un nome. Ad esempio,
<REGION-KEY>-AP-LAB01-NSG-01
. - Crea compartimento: immettere il compartimento di lavoro.
- Fare clic su Crea.
- Nome: immettere un nome. Ad esempio,
-
Ripetere i passi da 1 a 3 per il secondo gruppo NSG denominato
<REGION-KEY>-AP-LAB01-NSG-02
.
Opzione automatizzata:
Il seguente codice Terraform crea due gruppi NSG (NSG-01 e 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"
}
Per creare i due gruppi NSG, impostare i flag create_nsg_1
e create_nsg_2
su true
.
# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true
Task 3: avviare quattro VM utilizzando Terraform ed eseguire il test del ping IPMP (Internet Control Message Protocol)
Si presuppone familiarità con l'avvio manuale delle VM dalla console OCI. Per ulteriori informazioni, vedere Creazione di un'istanza.
Nota: per creare 4 VM si applica solo l'opzione di automazione Terraform (3 VM nella subnet pubblica e 1 VM nella subnet privata).
Abilitare il flag create_vm_1_3
per indicare a Terraform di creare tre VM (VM-01, VM-02 e VM-03).
# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true
Per creare tre istanze di computazione all'interno della subnet pubblica, abbiamo utilizzato il meta-argomento count
nel codice Terraform riportato di seguito. Questo approccio conciso semplifica il processo di creazione rispetto al più complesso meta-argomento di for_each
. L'impostazione di count
su 3 genera automaticamente le istanze indicizzate 0, 1 e 2, migliorando la leggibilità e l'efficienza del codice.
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"
}
}
Nota: per accedere alle VM pubbliche tramite SSH, generare la propria coppia di chiavi SSH. Per ulteriori informazioni, vedere Generate SSH keys.
Successivamente, abilitare il flag create_vm_4
per indicare a Terraform di creare VM-04 all'interno della rete privata.
# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4 = true
Si tratta della parte del codice Terraform che crea la quarta istanza (VM-04) nella subnet privata.
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"
}
}
Test dell'eco ICMP manuale: osservazione dell'impatto dei gruppi NSG sul traffico.
-
Andare alla console OCI, andare a Computazione e Istanze. Verranno elencate tutte e quattro le istanze.
-
Prendere nota degli indirizzi IP pubblici delle tre istanze (VM-01, VM-02, VM-03).
-
Dal computer, eseguire il ping dell'indirizzo IP pubblico di ogni istanza VM.
Risultati previsti:
-
Tutte le istanze non riusciranno perché la lista di sicurezza non dispone di una regola di eco ICMP.
-
Le regole di sicurezza predefinite hanno consentito l'accesso SSH (porta 22) a tutte le VM pubbliche.
Test dell'eco ICMP automatizzato: questo test viene automatizzato utilizzando il provisioninger local-exec
Terraform.
-
Abbiamo definito un array,
VM1_3
, contenente tre elementi per rappresentare le tre VM pubbliche, e una variabile,icmp_ping_count
, per specificare il numero di ping. -
Il seguente codice Terraform automatizza i test dell'eco ICMP su
VM-02
dal computer locale.resource "null_resource" "icmp_ping_VM2_fromlocal" { depends_on = [oci_core_instance.VM1-3[1]] count = (var.icmp_pingvm2_fromlocal) ? 1 : 0 # Ping VM-02 from local Computer provisioner "local-exec" { command = "ping -c ${var.icmp_ping_count} ${oci_core_instance.VM1-3[1].public_ip}" } }
Modificare il file input.auto.tfvars
per impostare il valore della variabile icmp_ping_count
. Per abilitare il ping di ciascuna delle tre VM pubbliche dal computer locale, impostare i flag icmp_pingvm?_fromlocal
su true
(dove 1, 2 o 3 rappresenta la VM specifica).
# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Task 4: configurare il traffico in entrata ICMP e collegare vNICs a NSG-01
Opzione manuale:
I seguenti task secondari necessari per configurare il traffico tra VM-03 e NSG-01.
Task 4.1: aggiungere una nuova regola di entrata in rete
Per aggiornare il primo NSG (NSG-01), seguire i passaggi descritti nella Figura 3.
-
Selezionare la VCN.
-
In Gruppi di sicurezza di rete, selezionare NSG-01 e fare clic su Aggiungi regole.
-
Immettere le informazioni seguenti e fare clic su Aggiungi.
- Tipo di origine: immettere CIDR.
- CIDR di origine: immettere
0.0.0.0/0
. - Protocollo IP: selezionare ICMP.
- Tipo: immettere 8.
- Codice: selezionare Tutti.
Figura 3: Aggiungere la regola di entrata a NSG-01 per consentire il ping ICMP da Internet
Task 4.2: configurare la terza VM (VM-03) in modo che punti a NSG-01
Per collegare NSG-01 alla VNIC (Virtual Network Interface) VM-03, attenersi alla procedura descritta nella Figura 4.
-
In Computazione, fare clic su Istanze, VM-03 e Visualizza dettagli.
-
Selezionare il file vNICs collegato e fare clic su VNIC primaria.
-
In Informazioni su vNIC, fare clic sul collegamento Modifica accanto a Gruppo di sicurezza di rete e selezionare NSG-01.
-
Fare clic su Salva modifiche.
Figura 4: Collegare NSG-01 alla vNIC VM-03
Opzione automatizzata:
Andare al file input.auto.tfvars
e attivare il flag automate_step_4
.
# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true
Note
- Si consiglia di eseguire manualmente i task di configurazione utilizzando Terraform per il provisioning automatico delle risorse.
- Se si sceglie l'automazione Terraform, ricordarsi di ricreare (eliminare e ricreare) le VM per collegare NSG-01 alla vNIC VM-03 in modo corretto.
- Indipendentemente dall'opzione scelta, il laboratorio richiede test di ping ICMP.
Controllo manuale: esegui un secondo echo test (ping) ICMP sugli indirizzi IP pubblici delle VM-01, VM-02 e VM-03 dal computer locale.
Risultati
- Tutto il ping fallirà. Solo la terza istanza (VM-03) risponderà correttamente.
- VM-03 risponde al ping a causa del collegamento della propria vNIC a NSG-01 (Figura 4), che consente il traffico ICMP in entrata (Figura 3).
Controllo automatico: passare al file input.auto.tfvars
e impostare tutti i flag icmp_pingvm?_fromlocal
su true (dove 1, 2 o 3 rappresenta la VM specifica).
# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Task 5: eseguire il ping ICMP prima di nidificare i due gruppi NSG
Opzione manuale:
Inizialmente si è tentato di eseguire il ping dell'indirizzo IP privato di VM-04 dalle tre VM pubbliche.
- SSH a tutte le istanze di computazione nella subnet pubblica (VM-01, VM-02, VM-03).
- Da ogni server ping l'indirizzo IP privato di VM-04.
Risultati previsti: tutti i tentativi di ping non riusciranno. Per abilitare la connettività, è necessaria un'architettura NSG nidificata.
Opzione automatizzata:
Impostare il flag icmp_test_from_vm?
su true per ogni VM pubblica (VM-01, VM-02 e VM-03). Sostituire con il numero VM specifico (1, 2 o 3) in ciascun nome di flag.
# 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
Questa opzione utilizza il provisioninger remote-exec
Terraform per automatizzare il test ICMP. Sarà necessario specificare la chiave SSH privata che corrisponde alla chiave pubblica utilizzata durante la creazione delle VM. Lo script della shell, ping_script.sh
, esegue l'iterazione del numero di tentativi di ping definiti da icmp_ping_count
.
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",
]
}
}
Task 6: Configurare i gruppi NSG nidificati (NSG-01 e NSG-02)
Opzione manuale:
Configurare il secondo gruppo NSG (NSG-02) con una regola di entrata che specifica NSG-01 come origine, abilitando il flusso di traffico ICMP tra i due gruppi NSG.
Task 6.1: aggiungere una regola di entrata in rete (rete cloud virtuale)
-
Nella VCN (VCN-01) fare clic su Regole di sicurezza.
-
Selezionare NSG-02 e fare clic su Aggiungi regole.
-
Immettere le informazioni seguenti e fare clic su Aggiungi.
- Tipo di origine: selezionare Gruppo di sicurezza di rete.
- Origine: immettere NSG-01.
- Protocollo IP: selezionare ICMP.
- Tipo: immettere 8.
- Codice: selezionare Tutti.
Figura 5: Aggiungere NSG-01 come origine alla regola di entrata NSG-02
Task 6.2: configurare la quarta VM (VM-04) in modo che punti a NSG-02
-
In Informazioni sulla vNIC della VM-04 (Figura 6), fare clic sul collegamento Modifica accanto a NSG e selezionare NSG-02.
-
Fare clic su Salva modifica.
Figura 6: Collegare l'NSG-02 alla vNIC VM-04
Opzione automatizzata:
Per automatizzare questa attività, impostare automate_step_6
su true nel file input.auto.tfvars
.
# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true
Task 7: Eseguire i test finali di eco ICMP per i gruppi NSG nidificati
Test end-to-end manuale:
Nuovo tentativo di eseguire il ping dell'indirizzo IP privato di VM-04 dalle VM pubbliche.
-
SSH nelle tre istanze nella subnet pubblica (VM-01, VM-02, VM-03).
-
Da ciascuno, ping dell'IP privato di VM-04. Solo VM-03 riesce come illustrato nella Figura 1.
Spiegazione: la vNIC della VM-04 è ora regolata dalle regole all'interno di NSG-02 e da quelle della lista di sicurezza predefinita. NSG-01 è configurato come origine della regola di entrata per NSG-02, consentendo il traffico da Internet.
Test end-to-end automatizzati:
Abilitare Terraform per eseguire automaticamente i test del ping di eco ICMP.
-
Impostare il flag
icmp_test_from_vm?
sutrue
per ciascuna delle 3 VM (VM-01, VM-02 e VM-03). -
Come illustrato nella parte sinistra della Figura 1, solo VM-03 esegue correttamente il ping su VM-04.
# 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
La Figura 7 visualizza i risultati di più tentativi di ping ICMP eseguiti dopo aver stabilito una connessione SSH a VM-03. La figura confronta il risultato del ping prima e dopo l'implementazione di NSG nidificati.
Figura 7: risultati del ping prima e dopo la nidificazione di NSG-02 in NSG-01 e il collegamento di vNICs alle VM
Nota: quando si utilizza Terraform, creare di nuovo le VM dopo il passaggio dalla configurazione manuale per garantire il collegamento appropriato di NSG-02 alla vNIC VM-04.
Opzioni di distribuzione
Opzione 1: uso dell'interfaccia CLI (Community Edition) (Terraform Command Line Interface)
Prima di eseguire i comandi Terrafrom per pianificare e distribuire l'infrastruttura utilizzando l'interfaccia CLI Terraform, è necessario aggiornare la configurazione Terraform fornita con i dettagli dell'ambiente specifico dal computer locale o in remoto in OCI Cloud Shell. Scarica il codice sorgente completo di Terraform da qui: oci-blog-fast-tracking-apcertif-main.zip. L'unico file da personalizzare per l'ambiente in uso è il file input.auto.tfvars
(il file denominato in modo simile è terraform.tfvars
). È possibile specificare, ad esempio, gli OCID dell'immagine del computer utilizzata (amper_image_id
) e quello del compartimento (compartment_id
) in cui verranno create le risorse del laboratorio (modificare i valori predefiniti solo se necessario). Il pacchetto fornisce istruzioni complete per la configurazione dell'ambiente, l'esecuzione di laboratori e la comprensione dei concetti di rete e sicurezza. Include guide dettagliate, suggerimenti e best practice per migliorare l'esperienza di apprendimento avanzato OCI.
##########################################################################
# 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"
Opzione 2: utilizzo di Oracle Resource Manager (campioni di input variabili)
Creare uno stack di Oracle Resource Manager definendo le variabili (ad esempio, amper_image_id
, compartment_id
), eseguendo il provisioning delle risorse di rete (create_vcn
, create_msg_1/2
), creando le VM (create_vm_1_3
, create_vm_4
, shape_name
), eseguendo i ping ICMP (icmp_pingvm1_fromlocal
, icmp_test_from_vm1
) ed eseguendo il piano per distribuire l'infrastruttura.
Passi successivi
I principi Infrastructure as Code (IaC), utilizzando Terraform, migliorano notevolmente la gestione dell'infrastruttura grazie a una distribuzione accelerata e a una maggiore sicurezza. Ad esempio, la configurazione manuale dei gruppi NSG nidificati nella certificazione OCI Architect Professional (2024) Lab 1: Become An OCI Architect Professional (2024) in genere richiede circa 25 minuti.
Sfruttando Terraform, abbiamo ridotto notevolmente il tempo necessario per eseguire il provisioning e configurare risorse OCI complesse, dimostrando un notevole aumento dell'efficienza. Ciò si traduce in un risparmio misurabile di tempo e costi per gli utenti OCI che gestiscono complesse configurazioni di sicurezza di rete. Inoltre, IaC promuove la coerenza e riduce il rischio di errore umano, rendendolo un modello prezioso sia per l'apprendimento che per le implementazioni dei clienti del mondo reale. Per ulteriori informazioni sull'applicazione di IaC con Terraform o altri strumenti simili per le tue esigenze di automazione OCI, valuta l'opportunità di applicare i principi appresi nei restanti laboratori di certificazione OCI Architect Professional esplorando l'architettura di riferimento OCI e le best practice.
Conferme
- Autore - Mahamat Hissein Guiagoussou (Master Principal Cloud Architect)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.
Per la documentazione del prodotto, visita l'Oracle Help Center.
Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraform
G13855-01
August 2024