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
applyper 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.tfOutput 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_idOutput 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.tfecompartment.tfpuntano entrambi a<tenancy-ocid>. Ad esempio, il filecompartment.tfpunta alla tenancy come compartimento padre e crea un compartimento sottostante. Non modificare il filecompartment_idin questi due file. - Ad eccezione dei file
availability-domains.tfecompartment.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, è possibile codificare la subnet pubblica che ospita l'istanza di computazione. Aggiornare il file compute.tf per fare riferimento al file public-subnet-OCID dal file public-subnet.tf.
- Individuare il riferimento a
subnet OCIDnel fileoutputs.tf.grep -R subnet outputs.tfOutput 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_idOutput di esempio:
compute.tf:19: subnet_id = "<your-public-subnet-ocid>" - Nel file
compute.tfrisultante 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 planOutput 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 applyQuando viene richiesta la conferma, immettere
yesper 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: