Aplicación de configuraciones

Una vez instalado y configurado el proveedor de Terraform de Oracle Cloud Infrastructure (OCI) y una vez haya creado configuraciones de Terraform que incluyan el proveedor y un recurso u origen de datos, puede ejecutar Terraform en la infraestructura de OCI.

Consejo

Consulte Tutoriales para obtener instrucciones paso a paso y ejemplos.

Inicialización de Terraform

Ejecute el siguiente comando desde un directorio que contenga los archivos de configuración de Terraform para inicializar Terraform:

terraform init

Ejemplo de salida:

Initializing the backend...

Initializing provider plugins...
- Finding latest version of hashicorp/oci...
- Installing hashicorp/oci v3.96.0...
- Installed hashicorp/oci v3.96.0 (signed by HashiCorp)

The following providers do not have any version constraints in configuration,
so the latest version was installed.
...
* hashicorp/oci: version = "~> 3.96.0"

Terraform has been successfully initialized!

Si el comando produce un error, verifique que el proveedor de Terraform de OCI está configurado correctamente.

Revisión de cambios

Sin realizar cambios en los recursos de OCI existentes, Terraform puede devolver una lista de los cambios que se realizarán en función de las configuraciones si decide aplicarlos. Esta lista se denomina plan de ejecución. Para ver el plan de ejecución, ejecute el siguiente comando:

terraform plan

Ejemplo de salida:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # oci_identity_compartment.tf-compartment will be created
  + resource "oci_identity_compartment" "tf-compartment" {
      + compartment_id = "exampleuniqueID"
      + defined_tags   = (known after apply)
      + description    = "Compartment for Terraform resources."
      + freeform_tags  = (known after apply)
      + id             = (known after apply)
      + inactive_state = (known after apply)
      + is_accessible  = (known after apply)
      + name           = <your-compartment-name>
      + state          = (known after apply)
      + time_created   = (known after apply)
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Revise el plan y compruebe si los cambios mostrados en el mismo coinciden con sus expectativas.

Cambios destructivos

Algunos recursos de OCI tienen propiedades que Terraform no puede actualizar sin destruir el recurso existente y volver a crearlo con el nuevo valor de propiedad. Al ejecutar terraform plan e intentar modificar una propiedad no actualizable, Terraform indica qué recurso se sustituirá y qué propiedad o propiedades no se pueden actualizar.

Por ejemplo, el siguiente plan de ejecución escribe -/+ delante de un recurso que se suprimirá y volverá a crear y agrega el comentario # forces replacement a la propiedad que no se puede actualizar:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement
 
Terraform will perform the following actions:
 
  # oci_core_vcn.vcn must be replaced
-/+ resource "oci_core_vcn" "vcn" {
      ~ cidr_block               = "10.0.0.0/16" -> "11.0.0.0/16" # forces replacement
      ~ cidr_blocks              = [
          - "10.0.0.0/16",
        ] -> (known after apply)
        compartment_id           = "ocid1.compartment.oc1..exampleuniqueID"
      ~ default_dhcp_options_id  = "ocid1.dhcpoptions.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ default_route_table_id   = "ocid1.routetable.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ default_security_list_id = "ocid1.securitylist.oc1.phx.exampleuniqueID" -> (known after apply)
      ~ defined_tags             = {} -> (known after apply)
        display_name             = "vcn"
        dns_label                = "vcn"
      ~ freeform_tags            = {} -> (known after apply)
      ~ id                       = "ocid1.vcn.oc1.phx.exampleuniqueID" -> (known after apply)
      + ipv6cidr_block           = (known after apply)
      + ipv6public_cidr_block    = (known after apply)
      + is_ipv6enabled           = (known after apply)
      ~ state                    = "AVAILABLE" -> (known after apply)
      ~ time_created             = "2021-01-25 20:54:53.255 +0000 UTC" -> (known after apply)
      ~ vcn_domain_name          = "vcn.oraclevcn.com" -> (known after apply)
    }
 
Plan: 1 to add, 0 to change, 1 to destroy.
Atención

Una supresión y una recreación forzadas de un recurso también pueden dar lugar a la sustitución de un recurso principal. Ejecute siempre terraform plan antes de ejecutar terraform apply para ver qué recursos se verán afectados.

La referencia completa de los recursos y orígenes de datos que soporta el proveedor de Terraform de OCI contiene detalles sobre el uso, los argumentos y los atributos. La referencia completa está disponible en docs.oracle.com y en Terraform Registry.

La referencia indica qué propiedades se pueden actualizar.

Aplicación de cambios

Una vez que esté seguro de que las configuraciones producirán los cambios esperados, puede aplicar las configuraciones de Terraform ejecutando el siguiente comando:

terraform apply

Cuando se le solicite confirmación, introduzca yes para que se cree el recurso. Después de ejecutar el comando apply, la salida se muestra en el terminal. Ejemplo de salida:

oci_identity_compartment.tf-compartment: Creating...
oci_identity_compartment.tf-compartment: Creation complete after 9s [id=exampleuniqueID]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Outputs:

compartment-OCID = ocid1.compartment.exampleuniqueID
compartment-name = <your-compartment-name>
Atención

Si realiza cambios en recursos que gestiona con Terraform fuera de Terraform, esos cambios se sobrescribirán la próxima vez que utilice Terraform para aplicar configuraciones. Agregue el parámetro ignore_changes a los recursos del archivo de configuración que no desea sobrescribir.