Creare una rete cloud virtuale
Utilizza Terraform per creare una rete cloud virtuale (VCN) nella tua tenancy Oracle Cloud Infrastructure.
I task chiave includono come:
- Impostare una VCN di base.
- Definire e aggiungere le risorse seguenti alla rete:
- Liste di sicurezza
- Subnet private e pubbliche

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.
Informazioni preliminari
Per eseguire correttamente questa esercitazione, è necessario disporre dei seguenti elementi:
- Un account Oracle Cloud Infrastructure a pagamento. Vedi Richiedi e gestisci le promozioni gratuite su Oracle Cloud.
- Un computer MacOS, Linux o Windows.
- Risorse dell'esercitazione su Terraform:
- Eseguire tutti i passi in:
- Conservare gli script creati nelle seguenti directory:
$HOME/tf-provider/
$HOME/tf-compartment/
- Tenere il compartimento dall'esercitazione Crea un compartimento nella tenancy in uso.
1. Prepara
Preparare l'ambiente per la creazione di una VCN. Inoltre, raccogliere tutte le informazioni necessarie per completare il tutorial.
Copiare le seguenti informazioni nel blocco note.
Per istruzioni sulla raccolta di queste informazioni, vedere la tabella seguente.
Elemento | Passi per raccogliere l'articolo |
---|---|
Nome compartimento | Fare riferimento all'esercitazione completata Crea un compartimento. |
ID compartimento |
|
Region |
|
Se il nome utente si trova nel gruppo Administrators
, saltare questa sezione. In caso contrario, chiedere all'amministratore di aggiungere il criterio seguente alla tenancy:
allow group <a-group-your-username-belongs-to> to manage all-resources in compartment <your-compartment-name>
Con questo privilegio, puoi gestire tutte le risorse nel tuo compartimento, concedendoti i diritti amministrativi in tale compartimento.
- Nella console: aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Criteri.
- Selezionare il compartimento.
- Selezionare Crea criterio.
- Nella pagina Crea criterio, immettere i valori riportati di seguito.
- Nome:
manage-<your-compartment-name>-resources
- Descrizione:
Allow users to list, create, update, and delete resources in <your-compartment-name>.
- Compartimento:
<your-tenancy>(root)
- Nome:
- In Costruzione guidata criteri, immettere i valori riportati di seguito.
- Casi d'uso dei criteri:
Compartment Management
- Modelli di criteri comuni:
Let compartment admins manage the compartment
- Dominio di Identity: <identity-domain>
- Gruppi:
<a-group-your-username-belongs-to>
- Posizione:
<your-compartment-name>
- Casi d'uso dei criteri:
- Selezionare Crea.
Riferimento: criteri comuni
2. Creare una rete di base
Crea script per l'autenticazione, una rete cloud virtuale di base (VCN) definita da un modulo e output.
In primo luogo, impostare una directory per gli script Terraform. Quindi copiare il provider e gli script delle versioni dall'esercitazione Imposta Terraform OCI in modo che l'account Oracle Cloud Infrastructure possa autenticare gli script in esecuzione da questa directory.
Dichiara una rete di base con un modulo VCN (Virtual Cloud Network) Oracle Cloud Infrastructure, documentato nel registro Terraform. Quindi, eseguire gli script e creare la rete. Nelle sezioni successive, aggiungere componenti per personalizzare la rete.
È possibile salvare uno stack dal workflow della console per creare una VCN. Lo stack contiene una configurazione Terraform che è possibile utilizzare come riferimento per la configurazione della VCN. Vedere Creazione di uno stack da una pagina di creazione delle risorse e Recupero della configurazione Terraform di uno stack.
Informazioni sui moduli
Un modulo è un contenitore per più risorse utilizzate insieme. Invece di dichiarare le risorse dell'infrastruttura una per una, inizia con un modulo fornito da Oracle Cloud Infrastructure. Ad esempio, inizia con un modulo VCN di base. Aggiungere quindi agli script le risorse non incluse nel modulo.
Dichiarazione di un blocco del modulo
- Avviare il blocco con la parola chiave:
module
- Aggiungere un'etichetta per il nome fornito del modulo:
- Esempio:
"vcn"
- Esempio:
- All'interno del blocco di codice:
- Aggiungere le informazioni
source
eversion
dalla sezione Istruzioni di provisioning della documentazione del modulo. - Fornire un valore per gli input richiesti. Non hanno un valore predefinito. Ad esempio:
# Required Inputs compartment_id = "<compartment-ocid>"
- Fornire i valori per gli input facoltativi che si desidera sostituire. In caso contrario, verranno utilizzati i relativi valori predefiniti. Ad esempio:
# 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
- È possibile commentare gli input facoltativi e mostrarne il valore predefinito, quindi in seguito quando si esamina il codice, è possibile sapere quali valori erano previsti. Ad esempio:
# Using the following default values # vcn_dns_label = "vcnmodule" # vcn_cidrs = ["10.0.0.0/16"]
- Aggiungere le informazioni
Aggiungere blocchi di output al codice per ottenere informazioni sulla rete cloud virtuale dopo l'esecuzione degli script.
Informazioni sugli output del modulo
Gli output dei moduli sono gli attributi che è possibile restituire per tale modulo.
Trova output per modulo VCN
Andare alla pagina vcn e selezionare Output per visualizzare una lista di attributi che possono essere restituiti per il modulo VCN. Esaminare la descrizione degli attributi:
- ig_route_id
- OCID della tabella di instradamento che include il gateway Internet
- nat_gateway_id
- OCID del gateway NAT
- nat_route_id
- OCID della tabella di instradamento che include il gateway NAT
- vcn_id
- OCID della VCN
Dichiarazione di un blocco di output del modulo
-
- Avviare il blocco con la parola chiave:
output
. - Aggiungere un'etichetta da stampare con i risultati dell'output:
- L'etichetta può contenere lettere, cifre, caratteri di sottolineatura (
_
) e trattini (-
). Il primo carattere non deve essere una cifra. - Esempio:
"vcn_id"
- L'etichetta può contenere lettere, cifre, caratteri di sottolineatura (
- Ottenere gli attributi dagli output per il modulo in Oracle Terraform Modules.
- All'interno del blocco di codice, immettere un valore per l'output del modulo con l'espressione:
value = module.<module-name>.<output-attribute>
- Esempio:
value = module.vcn.vcn_id
- (Facoltativo): all'interno del blocco di codice, aggiungere una stringa di descrizione. Ad esempio:
description = "OCID of the internet-route table. This route table has an internet gateway to be used for public subnets"
Nota
Una stringa di descrizione non viene stampata nell'output, quindi assicurarsi che l'etichetta descriva gli output. - Creare un blocco di output per ogni output.
- Avviare il blocco con la parola chiave:
Complimenti. Creazione di una rete virtuale di base con Terraform riuscita nell'account Oracle Cloud Infrastructure. Hai una rete virtuale e puoi farlo a questo punto. Nelle sezioni successive viene illustrato come personalizzare una rete creata da un modulo.
3. Personalizzare la rete
Creare script per liste di sicurezza, subnet private e subnet pubbliche per creare la stessa rete virtuale del workflow di creazione della console.
In Riferimento argomento (oci_core_security_list), trovare tutti gli argomenti richiesti (punti di primo livello):
- compartment_id
- vcn_id
Per passare a Riferimento argomento (oci_core_security_list):
- Vai a Oracle Cloud Infrastructure Provider.
- Nella casella Filtro in alto a sinistra, immettere
security list
.Vengono restituiti i risultati sia per le origini dati che per le risorse.
- In Core, andare a Resources e selezionare oci_core_security_list.
- Selezionare Riferimento argomento.
Viene visualizzato il riferimento argomento.
Dichiarare la lista di sicurezza:
- Per compartment_id: utilizzare
compartment_id = "<compartment-ocid>"
- Per vcn_id, utilizzare l'OCID della rete virtuale di base. Per assegnare l'OCID prima di conoscerlo, assegnare un output dal modulo come input per la risorsa della lista di sicurezza:
- Recupera l'attributo di output del modulo dalla pagina Output del modulo.
- Assegnare un valore all'argomento risorsa con l'espressione:
<resource argument> = module.<module-name>.<output-attribute>
- Esempio:
vcn_id = module.vcn.vcn_id
- Sia
oci_core_security_list resource
cheoracle-terraform-modules/vcn
utilizzano lo stesso nome argomento per l'OCID della rete cloud virtuale:vcn_id
. - Il
vcn_id
più a sinistra è l'argomento (input obbligatorio) per la risorsa. - L'elemento
vcn_id
più a destra rappresenta l'OCID della VCN creata con il modulo. - Non importa se hai eseguito lo script del modulo VCN e hai creato o meno la VCN. In entrambi i casi, Terraform assegna l'OCID VCN alla lista di sicurezza dopo la creazione del modulo VCN.
- Stateless: No
- Origine: 0.0.0.0/0
- Protocollo IP: tutti i protocolli
Il campo Consenti nella tabella viene generato automaticamente in base ad altri campi. Non si aggiunge un argomento per esso nello script.
Per private-security-list.tf
, andare a Riferimento argomento (oci_core_security_list) e trovare i seguenti argomenti:
- egress_security_rules
- senza conservazione dello stato
- destinazione
- destination_type
- protocollo
Per passare a Riferimento argomento (oci_core_security_list):
- Vai a Oracle Cloud Infrastructure Provider.
- Nella casella Filtro in alto a sinistra, immettere
security list
.Vengono restituiti i risultati sia per le origini dati che per le risorse.
- In Core, andare a Resources e selezionare oci_core_security_list.
- Selezionare Riferimento argomento.
Viene visualizzato il riferimento argomento.
Utilizzare il segno di uguale (=
) per assegnare un valore a un argomento solo all'interno del blocco.
- Scrittura:
egress_security_rules { <arguments with assigned values> }
- Non scrivere:
egress_security_rules = { <arguments with assigned values> }
Per gli attributi da utilizzare come output in outputs.tf
, selezionare Riferimento attributo per aprire Riferimento attributi (oci_core_security_list) e trovare i seguenti attributi:
- display_name
- ID
Complimenti. Creazione di una lista di sicurezza con una regola di uscita nella rete cloud virtuale riuscita. Nella sezione successiva, si aggiungono regole di entrata a questa lista di sicurezza.
In questa sezione, aggiungere le seguenti regole di entrata alla lista di sicurezza creata nella sezione precedente.
Regole di entrata
- Regola 1:
- Stateless: No
- Origine: 10.0.0.0/16
- Protocollo IP: TCP
- Intervallo porte di origine: tutto
- Intervallo di porte di destinazione: 22
- Regola 2:
- Stateless: No
- Origine: 0.0.0.0/0
- Protocollo IP: ICMP
- Tipo e codice: 3, 4
- Regola 3:
- Stateless: No
- Origine: 10.0.0.0/16
- Protocollo IP: ICMP
- Tipo e codice: 3
Il campo Consenti nella tabella viene generato automaticamente in base ad altri campi. Non si aggiunge un argomento per esso nello script.
Complimenti. Aggiunta di tre regole di entrata alla lista di sicurezza riuscita. Utilizzare questa lista di sicurezza per una subnet privata. È possibile creare un'altra lista di sicurezza per una subnet pubblica nella sezione successiva.
In Riferimento argomento (oci_core_security_list), individuare i seguenti argomenti:
- ingress_security_rules
- senza conservazione dello stato
- origine
- source_type
- protocollo
- icmp_options
- digitare
- codice
- tcp_options
- minuto
- massimo
Per passare a Riferimento argomento (oci_core_security_list):
- Vai a Oracle Cloud Infrastructure Provider.
- Nella casella Filtro in alto a sinistra, immettere
security list
.Vengono restituiti i risultati sia per le origini dati che per le risorse.
- In Core, andare a Resources e selezionare oci_core_security_list.
- Selezionare Riferimento argomento.
Viene visualizzato il riferimento argomento.
- Per protocollo, vedere Numeri di protocollo:
- TCP: 6
- ICMP: 1
- Per icmp_options, vedere Parametri ICMP (Internet Control Message Protocol).
- In tcp_options, se non si dispone di un intervallo di porte, ad esempio Intervallo di destinazione: 22, impostare il valore massimo e minimo sullo stesso numero. Ad esempio:
- minuto = 22
- massimo = 22
Complimenti. Creazione di un'altra lista di sicurezza nella rete cloud virtuale riuscita.
In questa sezione, puoi creare una subnet privata nella tua rete e associare la lista di sicurezza privata a questa subnet. Inoltre, aggiungi la tabella di instradamento NAT creata con il modulo VCN a questa subnet. La tabella di instradamento NAT dispone di un gateway NAT e di un gateway di servizio ed è progettata per le subnet private. Vedere il primo diagramma nell'esercitazione.
Complimenti. Creazione di una subnet privata nella rete cloud virtuale riuscita.
In Riferimento argomento (oci_core_subnet), trovare tutti gli argomenti richiesti:
- compartment_id
- vcn_id
- cidr_block
Per passare a Riferimento argomento (oci_core_subnet):
- Vai a Oracle Cloud Infrastructure Provider.
- Nella casella Filtro in alto a sinistra, immettere
subnet
.Vengono restituiti i risultati sia per le origini dati che per le risorse.
- In Core, andare a Resources e selezionare oci_core_subnet.
- Selezionare Riferimento argomento.
Viene visualizzato il riferimento argomento.
- Sostituire i seguenti argomenti facoltativi:
- route_table_id
- security_list_ids
- display_name
- Assegnare i valori ai seguenti argomenti:
- cidr_block
- Vedere il primo diagramma nell'esercitazione.
- route_table_id
- OCID di una tabella di instradamento.
- Per visualizzare i gateway per questa tabella di instradamento, fare riferimento alla subnet privata nel primo diagramma dell'esercitazione:
- Gateway NAT
- Gateway del servizio
- Assegnare la tabella di instradamento al gateway NAT creato con il modulo VCN. Questa tabella di instradamento contiene anche un gateway di servizio.Nota
- Usare
module.vcn.nat_route_id
. - Non utilizzare
module.vcn.nat_gateway_id
, perché restituisce l'OCID del gateway e non la tabella di instradamento.
- Usare
- (Facoltativo): nella console rivedere le regole della tabella di instradamento e confrontare i valori di Tipo di destinazione con il diagramma di esercitazione (gateway di servizio, gateway NAT).
- Nella pagina dei dettagli per la VCN, selezionare Instradamento o Tabelle di instradamento (a seconda di ciò che viene visualizzato).
- Selezionare nat-route.
- Selezionare Regole di instradamento.
- security_list_ids
- Restituisce una lista di stringhe, ognuna delle quali è un OCID di una lista di sicurezza.
- Recupera l'OCID della lista di sicurezza privata.
- Utilizzare le parentesi quadre per questo argomento. Ad esempio:
security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
- Per assegnare un elenco di sicurezza, posizionarlo all'interno delle parentesi quadre senza virgole.
- Per fare riferimento alla lista di sicurezza creata con un'altra risorsa, utilizzarne il nome locale. Ad esempio:
security_list_ids = [oci_core_security_list.<local-name>.id] security_list_ids = [oci_core_security_list.private-security-list.id]
- cidr_block
In questa sezione è possibile creare una subnet pubblica nella rete e associare la lista di sicurezza pubblica a questa subnet. Inoltre, aggiungi a questa subnet la tabella di instradamento Internet creata con il modulo VCN. La tabella di instradamento Internet dispone di un gateway Internet ed è progettata per le subnet pubbliche. Vedere il primo diagramma nell'esercitazione.
Complimenti. Creazione di una subnet pubblica nella rete cloud virtuale riuscita.
In Riferimento argomento (oci_core_subnet), trovare tutti gli argomenti richiesti:
- compartment_id
- vcn_id
- cidr_block
Per passare a Riferimento argomento (oci_core_subnet):
- Vai a Oracle Cloud Infrastructure Provider.
- Nella casella Filtro in alto a sinistra, immettere
subnet
.Vengono restituiti i risultati sia per le origini dati che per le risorse.
- In Core, andare a Resources e selezionare oci_core_subnet.
- Selezionare Riferimento argomento.
Viene visualizzato il riferimento argomento.
- Sostituire i seguenti argomenti facoltativi:
- route_table_id
- security_list_ids
- display_name
- Assegnare i valori ai seguenti argomenti:
- cidr_block
- Vedere il primo diagramma nell'esercitazione.
- route_table_id
- OCID di una tabella di instradamento.
- Per visualizzare il gateway per questa tabella di instradamento, fare riferimento alla subnet pubblica nel primo diagramma dell'esercitazione:
- Gateway Internet
- Assegnare la tabella di instradamento a un gateway Internet creato con il modulo VCN.Nota
- Utilizzare module.vcn.ig_route_id.
- (Facoltativo): nella console rivedere le regole della tabella di instradamento e confrontare il valore Tipo di destinazione con il diagramma di esercitazione (Internet Gateway).
- Nella pagina dei dettagli per la VCN, selezionare Instradamento o Tabelle di instradamento (a seconda di ciò che viene visualizzato).
- Selezionare internet-route.
- Selezionare Regole di instradamento.
- security_list_ids
- Restituisce una lista di stringhe, ognuna delle quali è un OCID di una lista di sicurezza.
- Recupera l'OCID della lista di pubblica sicurezza.
- Utilizzare le parentesi quadre per questo argomento. Ad esempio:
security_list_ids = ["sec-list-1","sec-list-2","sec-list-3"]
- Per assegnare un elenco di sicurezza, posizionarlo all'interno delle parentesi quadre senza virgole.
- Per fare riferimento alla lista di sicurezza creata con un'altra risorsa, utilizzarne il nome locale. Ad esempio:
security_list_ids = [oci_core_security_list.<local-name>.id] security_list_ids = [oci_core_security_list.public-security-list.id]
- cidr_block
4. Ricreare la VCN (facoltativo)
Eliminare la VCN. Quindi rieseguire gli script per creare un'altra VCN.
Nelle sezioni precedenti, per controllare il tuo lavoro, hai eseguito gli script ogni volta che hai dichiarato una risorsa. Ora li correte insieme. Gli script sono dichiarativi e Terraform risolve l'ordine in cui vengono creati gli oggetti.
Complimenti. La ricreazione di una rete cloud virtuale e dei relativi componenti mediante Terraform è riuscita nell'account Oracle Cloud Infrastructure.
Questa rete cloud virtuale ha gli stessi componenti di una rete cloud virtuale creata utilizzando la Avvia procedura guidata VCN nella console, con l'opzione VCN con connettività Internet. È possibile seguire i passaggi dell'esercitazione per impostare una rete e quindi confrontarla con questa rete.
Riferimenti:
Pagina successiva
Per la prossima esercitazione su Terraform, andare a:
Per ulteriori informazioni sullo sviluppo con i prodotti Oracle, visitare i seguenti siti: