デフォルトVCNリソースの管理
Oracle Cloud Infrastructure Terraformプロバイダを使用してデフォルトVCNリソースを管理します。
oci_core_vcn
リソースを作成すると、デフォルトで次の関連リソースも作成されます:
oci_core_security_list
oci_core_dhcp_options
oci_core_route_table
これらのデフォルト・リソースは、Terraform構成で指定されていない場合でも暗黙的に作成されます。そのOCIDは、oci_core_vcn
リソースの次の属性によって返されます:
default_security_list_id
default_dhcp_options_id
default_route_table_id
デフォルト・リソースは、個別のリソース・タイプを使用してTerraformで構成する必要があります。デフォルト・リソースの構成に使用するリソースと新規リソース・タイプ間のマッピングを次に示します:
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
デフォルト・リソース・タイプは、デフォルト以外のリソース・タイプと同じ方法で構成されます。唯一の違いは、manage_default_resource_id
引数を使用してデフォルト・リソースのIDを指定することです。
そのため、デフォルト・リソースでは、vcn_id
が不要になりました。
OCI Terraformプロバイダのサポートされているリソースおよびデータ・ソースの完全なリファレンスには、使用方法、引数および属性の詳細が含まれます。完全なリファレンスは、docs.oracle.comおよびTerraformレジストリから入手できます。
データ・ソースとリソースは、リファレンス内のサービスごとにグループ化されます。
次の例では、VCNのデフォルト・ルート表およびDHCPオプションを示します:
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"
}
}
制限事項
デフォルト・リソースは、関連するoci_core_vcn
リソースが削除された場合にのみ削除できます。デフォルト・リソースをターゲット指定して削除しようとすると、そのリソースは、Terraform状態ファイルから削除されますが、空の設定のままOCIに存在し続ける可能性があります。
ターゲット指定した削除の例:
- 以前に適用されたTerraform構成からのデフォルト・リソースの削除
terraform destroy -target=<default resource>
コマンドの実行- 以前に適用されたデフォルト・リソースの
manage_default_resource_id
の変更