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.
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.
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>
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.