Configuración de una infraestructura simple con Terraform de OCI
Utilice Terraform para configurar una infraestructura simple en su cuenta de Oracle Cloud Infrastructure.
Las tareas clave incluyen cómo:
- Copie los scripts existentes de otros tutoriales de Terraform.
- Editar los scripts para combinar todos los recursos en un directorio.
- Ejecute un comando
applypara crear los siguientes recursos:- un compartimento
- una red virtual en la nube
- una instancia informática
Para obtener más información, consulte:
Antes de empezar
Para realizar correctamente este tutorial, debe tener lo siguiente:
- Una cuenta de Oracle Cloud Infrastructure de pago. Consulte Solicitar y gestionar promociones de Oracle Cloud gratis.
- Una computadora MacOS, Linux o Windows.
- Recursos del tutorial de Terraform:
- Pase por todos los pasos de:
- Mantenga los scripts creados en los siguientes directorios:
-
$HOME/tf-provider/ -
$HOME/tf-compartment/ -
$HOME/tf-compute/ -
$HOME/tf-vcn/
-
1. Preparación
Copie los scripts que ha creado en los tutoriales de Terraform anteriores en un nuevo directorio.
2. Edición de los scripts
Edite los scripts para asignar un nuevo nombre al compartimento y para sustituir todos los OCID de codificación fija por referencias.
En los tutoriales anteriores, codifica de forma fija el OCID del compartimento. Ahora, actualice <compartment-ocid> para hacer referencia al compartimento desde compartment.tf.
- Busque cómo se hace referencia al OCID de compartimento en el archivo
outputs.tf.grep -R compartment outputs.tfSalida de ejemplo:
# Outputs for compartment output "compartment-name" { value = oci_identity_compartment.tf-compartment.name output "compartment-OCID" { value = oci_identity_compartment.tf-compartment.id - Copie el valor del OCID del compartimento en el panel de notas:
oci_identity_compartment.tf-compartment.id
- Busque qué archivos hacen referencia a
compartment_id.grep -Rn compartment_idSalida de ejemplo:
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
Los archivosavailability-domains.tfycompartment.tfapuntan a<tenancy-ocid>. Por ejemplo, el archivocompartment.tfapunta al arrendamiento como su compartimento principal y, a continuación, crea un compartimento debajo. No editecompartment_iden estos dos archivos. - A excepción de
availability-domains.tfycompartment.tf, en los archivos restantes resultantes del comandogrep, sustituyacompartment_id = "<compartment-ocid>"por:compartment_id = oci_identity_compartment.tf-compartment.id
En el tutorial Creación de una instancia informática, codifica de manera fija la subred pública que aloja la instancia informática. Ahora, actualice el archivo compute.tf para que haga referencia a public-subnet-OCID del archivo public-subnet.tf.
- Busque cómo se hace referencia a
subnet OCIDen el archivooutputs.tf.grep -R subnet outputs.tfSalida de ejemplo:
... # 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 - Copie el valor para el OCID de subred pública en el panel de notas:
oci_core_subnet.vcn-public-subnet.id
- Busque qué archivos hacen referencia a
subnet_id.grep -Rn subnet_idSalida de ejemplo:
compute.tf:19: subnet_id = "<your-public-subnet-ocid>" - En el archivo
compute.tfque resulta del comandogrep, sustituyacompartment_id = "<your-public-subnet-ocid>"por:subnet_id = oci_core_subnet.vcn-public-subnet.id
Felicidades! Todos los scripts ya están listos para ejecutarse.
3. Creación de una infraestructura simple
Ejecute los scripts de Terraform para crear un compartimento, una red virtual en la nube y una instancia informática en la subred pública.
- Inicialice un directorio de trabajo en el directorio
tf-simple-infrastructure.terraform init - Cree un plan de ejecución y revise los cambios que Terraform planea realizar en su cuenta:
terraform planSalida de ejemplo:
.... 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 = [ .... - Cree su infraestructura sencilla con Terraform:
terraform applyCuando se le solicite confirmación, introduzca
yespara crear los recursos.
- abra el menú de navegación y seleccione Identity & Security. En Identidad, seleccione Compartimentos.
- Refresque la página hasta que vea el nombre del compartimento.
- Abra el menú de navegación , seleccione Red y, a continuación, seleccione Redes virtuales en la nube.
- Seleccione su compartimento.
Si no encuentra el compartimento, refresque la página.
- Seleccione la VCN y, a continuación, revise los recursos creados.
- Abra el menú de navegación y seleccione Recursos informáticos. En Recursos informáticos, seleccione Instancias.
- Vea que la instancia aparece en la lista de instancias.
Revise las salidas del terminal de salida.
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.
Referencias:
Siguiente paso
Felicidades! Ha creado correctamente una infraestructura sencilla con Terraform en su cuenta de Oracle Cloud Infrastructure.
Ahora que sabe cómo utilizar orígenes de datos, recursos y módulos, continúe y agregue nuevos objetos de Oracle Cloud Infrastructure Provider a su infraestructura simple.
Para obtener más información sobre el desarrollo con productos Oracle, consulte estos sitios: