Eliminar recursos de Oracle Cloud Infrastructure (OCI) con Terraform
- Francisco Javier Huete
- Ia c , Cloud
- August 28, 2025
Índice
En este post se explica cómo se pueden eliminar recursos en un proveedor de cloud, en este caso Oracle Cloud Infrastructure (OCI) usando la herramienta de línea de comandos de Terraform. El punto de partida es una infraestructura sencilla: una VCN con una subnet creada en otro artículo de este blog y después modificada en este otro post.
Esta infraestructura está definida por la siguiente configuración en Terraform:
terraform {
required_providers {
oci = {
source = "oracle/oci"
version = "7.15.0"
}
}
}
provider "oci" {
region = "eu-madrid-1"
auth = "SecurityToken"
config_file_profile = "terraform-tutorial"
}
resource "oci_core_vcn" "mi_vcn" {
dns_label = "mivcn"
cidr_block = "172.22.0.0/16"
compartment_id = "<OCID del compartimento>"
display_name = "Mi VCN"
}
resource "oci_core_subnet" "private_subnet" {
vcn_id = oci_core_vcn.mi_vcn.id
cidr_block = "172.22.0.0/24"
compartment_id = "<OCID del compartimento>"
display_name = "Subred Privada"
prohibit_public_ip_on_vnic = true
dns_label = "privatesubnet"
}
El comando de Terraform que permite destruir los recursos creados a través de una configuración como esta es terraform destroy
.
❯ terraform destroy
oci_core_vcn.mi_vcn: Refreshing state... [id=<OCID de la VCN>]
oci_core_subnet.private_subnet: Refreshing state... [id=<OCID de la subred>]
Terraform used the selected providers to generate the following execution plan.
Resource actions are indicated with the following symbols:
- destroy
Terraform will perform the following actions:
# oci_core_subnet.private_subnet will be destroyed
- resource "oci_core_subnet" "private_subnet" {
- cidr_block = "172.22.0.0/24" -> null
- compartment_id = "<OCID del compartimento>" -> null
- defined_tags = {
- "Oracle-Tags.CreatedBy" = "default/fjhuete"
- "Oracle-Tags.CreatedOn" = "2025-08-22T15:36:51.582Z"
} -> null
- dhcp_options_id = "<OCID del recurso>" -> null
- display_name = "Subred Privada" -> null
- dns_label = "privatesubnet" -> null
- freeform_tags = {} -> null
- id = "<OCID de la subred>" -> null
- ipv6cidr_blocks = [] -> null
- prohibit_internet_ingress = true -> null
- prohibit_public_ip_on_vnic = true -> null
- route_table_id = "<OCID del recurso>" -> null
- security_list_ids = [
- "<OCID del recurso>",
] -> null
- state = "AVAILABLE" -> null
- subnet_domain_name = "privatesubnet.mivcn.oraclevcn.com" -> null
- time_created = "2025-08-22 15:36:51.612 +0000 UTC" -> null
- vcn_id = "<OCID de la VCN>" -> null
- virtual_router_ip = "172.22.0.1" -> null
- virtual_router_mac = "00:00:17:D1:34:5F" -> null
}
# oci_core_vcn.mi_vcn will be destroyed
- resource "oci_core_vcn" "mi_vcn" {
- byoipv6cidr_blocks = [] -> null
- cidr_block = "172.22.0.0/16" -> null
- cidr_blocks = [
- "172.22.0.0/16",
] -> null
- compartment_id = "<OCID del compartimento>" -> null
- default_dhcp_options_id = "<OCID del recurso>" -> null
- default_route_table_id = "<OCID del recurso>" -> null
- default_security_list_id = "<OCID del recurso>" -> null
- defined_tags = {
- "Oracle-Tags.CreatedBy" = "default/fjhuete"
- "Oracle-Tags.CreatedOn" = "2025-08-22T14:31:11.222Z"
} -> null
- display_name = "Mi VCN" -> null
- dns_label = "mivcn" -> null
- freeform_tags = {} -> null
- id = "<OCID de la VCN>" -> null
- ipv6cidr_blocks = [] -> null
- ipv6private_cidr_blocks = [] -> null
- is_ipv6enabled = false -> null
- security_attributes = {} -> null
- state = "AVAILABLE" -> null
- time_created = "2025-08-22 14:31:11.279 +0000 UTC" -> null
- vcn_domain_name = "mivcn.oraclevcn.com" -> null
}
Plan: 0 to add, 0 to change, 2 to destroy.
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
oci_core_subnet.private_subnet: Destroying... [id=<OCID de la subred>]
oci_core_subnet.private_subnet: Destruction complete after 1s
oci_core_vcn.mi_vcn: Destroying... [id=<OCID de la VCN>]
oci_core_vcn.mi_vcn: Destruction complete after 1s
Destroy complete! Resources: 2 destroyed.
Tras ejecutar el comando, los recursos definidos en el fichero de Terraform desaparecen de la infraestrucutra en el proveedor de nube:
❯ oci network vcn list --profile terraform-tutorial --auth security_token --compartment-id <OCID del compartimento> | wc -l
0
❯ oci network subnet list --profile terraform-tutorial --auth security_token --compartment-id <OCID del compartimento> | wc -l
0