Standard-VCN-Ressourcen verwalten

Standard-VCN-Ressourcen mit dem Oracle Cloud Infrastructure-Terraform-Provider verwalten.

Wenn Sie eine oci_core_vcn-Ressource erstellen, werden standardmäßig auch die folgenden zugehörigen Ressourcen erstellt:

  • oci_core_security_list
  • oci_core_dhcp_options
  • oci_core_route_table

Diese Standardressourcen werden implizit erstellt, selbst wenn sie nicht in der Terraform-Konfiguration angegeben werden. Ihre OCIDs werden von den folgenden Attributen unter der oci_core_vcn-Ressource zurückgegeben:

  • default_security_list_id
  • default_dhcp_options_id
  • default_route_table_id

Standardressourcen müssen mit einem separaten Ressourcentyp in Terraform konfiguriert werden. Hier sehen Sie die Zuordnungen zwischen der Ressource und dem neuen Ressourcentyp zum Konfigurieren von Standardressourcen:

  • oci_core_security_list => oci_core_default_security_list
  • oci_core_dhcp_options => oci_core_default_dhcp_options
  • oci_core_route_table => oci_core_default_route_table

Standardressourcentypen werden auf die gleiche Weise konfiguriert wie nicht standardmäßige Ressourcentypen. Der einzige Unterschied besteht darin, dass die ID der Standardressource mit dem Argument manage_default_resource_id angegeben wird.

Daher ist vcn_id für Standardressourcen nicht mehr erforderlich.

Im folgenden Beispiel werden die Standardroutentabelle und DHCP-Optionen eines VCN geändert:

resource "oci_core_vcn" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = var.compartment_id
  display_name = "vcn1"
}

# Gateway
## Internet Gateway
resource "oci_core_internet_gateway" "inetGw" {
    compartment_id = var.compartment_id
    display_name   = "inetGw"
    vcn_id         = oci_core_vcn.vcn1.id
}

resource "oci_core_default_dhcp_options" "default-dhcp-options" {
  manage_default_resource_id = oci_core_vcn.vcn1.default_dhcp_options_id

  #Required
  options {
    type = "DomainNameServer"
    server_type = "VcnLocalPlusInternet"
  }
}

  #Optional
  options {
    type = "SearchDomain"
    search_domain_names = [ "abc.com" ]
  }
}

resource "oci_core_default_route_table" "default-route-table" {
  manage_default_resource_id = oci_core_vcn.vcn1.default_route_table_id

    #Required
    compartment_id = var.compartment_id

    #Optional
    display_name = "default_route_table"
    route_rules {

        #Required
        network_entity_id = oci_core_internet_gateway.inetGw.id

        #Optional
        destination = "0.0.0.0/0"
        destination_type = "CIDR_BLOCK"
    }
}

Einschränkungen

Standardressourcen können nur entfernt werden, wenn die zugehörige oci_core_vcn-Ressource entfernt wird. Beim Versuch, eine Standardressource gezielt zu entfernen, wird die Ressource aus der Terraform-Statusdatei entfernt. Sie kann jedoch weiterhin mit leeren Einstellungen in OCI vorhanden sein.

Beispiele für das gezielte Entfernen:

  • Standardressource aus einer zuvor angewendeten Terraform-Konfiguration entfernen
  • Befehl terraform destroy -target=<default resource> ausführen
  • Eine zuvor angewendete manage_default_resource_id für eine Standardressource ändern