Imposta un'infrastruttura semplice con OCI Terraform
Utilizza Terraform per impostare una semplice infrastruttura nel tuo account Oracle Cloud Infrastructure.
I task chiave includono come:
- Copiare gli script esistenti da altre esercitazioni Terraform.
- Modificare gli script per combinare tutte le risorse in un'unica directory.
- Eseguire un comando
apply
per creare le risorse seguenti:- un compartimento
- una rete cloud virtuale
- un'istanza di computazione

Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.
Informazioni preliminari
Per eseguire correttamente questa esercitazione, è necessario disporre dei seguenti elementi:
- Un account a pagamento Oracle Cloud Infrastructure. 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/
$HOME/tf-compute/
$HOME/tf-vcn/
1. Prepara
Copiare gli script creati nelle precedenti esercitazioni Terraform in una nuova directory.
2. Modificare gli script
Modificare gli script per assegnare un nuovo nome al compartimento e sostituire tutti gli OCID non modificabili con riferimenti.
Nelle esercitazioni precedenti è stato definito come non modificabile l'OCID del compartimento. Ora, aggiornare <compartment-ocid>
per fare riferimento al compartimento da compartment.tf
.
- Individuare il modo in cui viene fatto riferimento all'OCID del compartimento nel file
outputs.tf
.grep -R compartment outputs.tf
Output di esempio:
# Outputs for compartment output "compartment-name" { value = oci_identity_compartment.tf-compartment.name output "compartment-OCID" { value = oci_identity_compartment.tf-compartment.id
- Copiare il valore dell'OCID compartimento nel blocco note:
oci_identity_compartment.tf-compartment.id
- Individuare i file che fanno riferimento a
compartment_id
.grep -Rn compartment_id
Output di esempio:
availability-domains.tf:7: compartment_id = "<tenancy-ocid>" compartment.tf:3: compartment_id = "<tenancy-ocid>" compute.tf:4: compartment_id = "<compartment-ocid>" private-security-list.tf:6: compartment_id = "<compartment-ocid>" private-subnet.tf:6: compartment_id = "<compartment-ocid>" public-security-list.tf:6: compartment_id = "<compartment-ocid>" public-subnet.tf:6: compartment_id = "<compartment-ocid>" vcn-module.tf:9: compartment_id = "<compartment-ocid>"
Nota
I fileavailability-domains.tf
ecompartment.tf
puntano entrambi al file<tenancy-ocid>
. Ad esempio, il filecompartment.tf
punta alla tenancy come compartimento padre, quindi crea un compartimento sotto di essa. Non modificare il filecompartment_id
in questi due file. - Ad eccezione dei file
availability-domains.tf
ecompartment.tf
, nei file rimanenti che derivano dal comandogrep
, sostituirecompartment_id = "<compartment-ocid>"
con:compartment_id = oci_identity_compartment.tf-compartment.id
Nell'esercitazione Crea un'istanza di computazione è stata specificata la subnet pubblica che ospita l'istanza di computazione. A questo punto, aggiornare il file compute.tf
in modo che faccia riferimento a public-subnet-OCID
dal file public-subnet.tf
.
- Individuare il riferimento a
subnet OCID
nel fileoutputs.tf
.grep -R subnet outputs.tf
Output di esempio:
... # 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 # 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
- Copiare il valore dell'OCID della subnet pubblica nel blocco note:
oci_core_subnet.vcn-public-subnet.id
- Individuare i file che fanno riferimento a
subnet_id
.grep -Rn subnet_id
Output di esempio:
compute.tf:19: subnet_id = "<your-public-subnet-ocid>"
- Nel file
compute.tf
risultante dal comandogrep
, sostituirecompartment_id = "<your-public-subnet-ocid>"
con:subnet_id = oci_core_subnet.vcn-public-subnet.id
Complimenti. Tutti gli script sono pronti per essere eseguiti.
3. Creare un'infrastruttura semplice
Esegui gli script Terraform per creare un compartimento, una rete cloud virtuale e un'istanza di computazione nella subnet pubblica.
- Inizializzare una directory di lavoro nella directory
tf-simple-infrastructure
.terraform init
- Creare un piano di esecuzione ed esaminare le modifiche che Terraform prevede di apportare all'account:
terraform plan
Output di esempio:
.... Terraform will perform the following actions: # oci_core_instance.ubuntu_instance will be created .... Plan: 14 to add, 0 to change, 0 to destroy. Changes to Outputs: + all-availability-domains-in-your-tenancy = [ ....
- Crea la tua infrastruttura semplice con Terraform:
terraform apply
Quando viene richiesta la conferma, immettere
yes
per creare le risorse.
- aprire il menu di navigazione , selezionare Identità e sicurezza. In Identità, selezionare Compartimenti.
- Aggiornare la pagina finché non viene visualizzato il nome del compartimento.
- Aprire il menu di navigazione , selezionare Networking, quindi selezionare Reti cloud virtuali.
- Selezionare il compartimento.
Se non è possibile trovare il compartimento, aggiornare la pagina.
- Selezionare la VCN, quindi rivedere le risorse create.
- Aprire il menu di navigazione e selezionare Computazione. In Computazione, selezionare Istanze.
- Guarda la visualizzazione dell'istanza nella lista delle istanze.
Esaminare gli output nel terminale di output.
oci_identity_compartment.tf-compartment: Creating...
oci_identity_compartment.tf-compartment: Creation complete after 7s [id=xxx]
module.vcn.oci_core_vcn.vcn: Creating...
module.vcn.oci_core_vcn.vcn: Creation complete after 2s [id=xxx]
module.vcn.oci_core_internet_gateway.ig[0]: Creating...
module.vcn.oci_core_nat_gateway.nat_gateway[0]: Creating...
module.vcn.oci_core_default_security_list.lockdown[0]: Creating...
module.vcn.oci_core_service_gateway.service_gateway[0]: Creating...
oci_core_security_list.private-security-list: Creating...
oci_core_security_list.public-security-list: Creating...
module.vcn.oci_core_internet_gateway.ig[0]: Creation complete after 1s [id=xxx]
module.vcn.oci_core_route_table.ig[0]: Creating...
oci_core_security_list.public-security-list: Creation complete after 1s [id=xxx]
module.vcn.oci_core_default_security_list.lockdown[0]: Creation complete after 1s [id=xxx]
oci_core_security_list.private-security-list: Creation complete after 1s [id=xxx]
module.vcn.oci_core_route_table.ig[0]: Creation complete after 1s [id=xxx]
oci_core_subnet.vcn-public-subnet: Creating...
module.vcn.oci_core_nat_gateway.nat_gateway[0]: Creation complete after 2s [id=xxx]
module.vcn.oci_core_service_gateway.service_gateway[0]: Creation complete after 3s [id=xxx]
module.vcn.oci_core_route_table.service_gw[0]: Creating...
module.vcn.oci_core_route_table.nat[0]: Creating...
module.vcn.oci_core_route_table.service_gw[0]: Creation complete after 0s [id=xxx]
module.vcn.oci_core_route_table.nat[0]: Creation complete after 1s [id=xxx]
oci_core_subnet.vcn-private-subnet: Creating...
oci_core_subnet.vcn-public-subnet: Creation complete after 2s [id=xxx]
oci_core_instance.ubuntu_instance: Creating...
oci_core_subnet.vcn-private-subnet: Creation complete after 2s [id=xxx]
oci_core_instance.ubuntu_instance: Still creating... [10s elapsed]
oci_core_instance.ubuntu_instance: Still creating... [20s elapsed]
oci_core_instance.ubuntu_instance: Still creating... [30s elapsed]
oci_core_instance.ubuntu_instance: Creation complete after 38s [id=xxx]
Apply complete! Resources: 14 added, 0 changed, 0 destroyed.
Riferimenti:
Pagina successiva
Complimenti. Creazione di un'infrastruttura semplice con Terraform riuscita nell'account Oracle Cloud Infrastructure.
Ora che sai come utilizzare le origini dati, le risorse e i moduli, vai avanti e aggiungi nuovi oggetti da Oracle Cloud Infrastructure Provider alla tua semplice infrastruttura.
Per ulteriori informazioni sullo sviluppo con i prodotti Oracle, visitare i seguenti siti: