このモジュールは、Oracle Cloud Infrastructure(OCI)で新しい仮想クラウドネットワーク(VCN)およびその他のオプションサービスをプロビジョニングするために必要な初期ブートストラップを提供します。
VCNは、OCIのネットワークの中核基盤です。このモジュールは、次のリソースを作成する機能を提供します。
| リソース | デフォルトで作成しましたか? |
|---|---|
| VCN | いいえ(オプション) |
| インターネットゲートウェイ | いいえ(オプション) |
| Nat Gateway | いいえ(オプション) |
| サービスゲートウェイ | いいえ(オプション) |
| 動的ルーティングゲートウェイ | いいえ(オプション) |
| 要塞 | いいえ(オプション) |
このモジュールを使用することにより、基本的な基礎通信パスを含む基本的なクラウドネットワークが作成されます(ほとんどのユースケースでは、すべてではありませんが)。 VPN-Connect、FastConnect、またはVCN Peeringが必要な状況では、これらのサービスは、このモジュールによって展開されたVCNの上に構築する必要があります。
いくつかの完全に機能する例が、 examplesディレクトリに記載されています。各例に固有の方向については、各例ディレクトリのREADME.mdを参照してください。
すぐに開始するには、最小展開のために、次の例を使用できます。
module "oci_network" {
source = "../../"
#source = "oracle-terraform-modules/default-vcn/oci"
default_compartment_id = "${var.compartment_id}"
}
これにより、モジュールのデフォルトを使用してVCNが展開されます。これらのパラメーターの詳細な説明については、このREADMEを確認してください。
このコアサービスモジュールは通常、展開時に使用され、それ以上のアクセスは必要ありません。ソリューションの一部として作成するように要求されている場合は、要求されている場合は、要求が必要な場合があります。
APIを介して直接Terraform(Best)、OCI CLI、OCIコンソール(UI)などを使用して、展開された環境を引き続き管理できます。
| 属性 | データ型 | 必須 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|---|
| default_compartment_id | 弦 | はい | なし | コンパートメントOCIDの文字列 | これは、オブジェクトを作成するときに使用されるデフォルトのOCIDです(特定のオブジェクトに対してオーバーライドされない限り)。これは、既存のコンパートメントのOCIDである必要があります(コンパートメントは作成されません)。 |
| vcn_options | 地図 | いいえ | 以下を参照してください | 以下を参照してください | VCNのカスタマイズに使用できるオプションのパラメーター。 |
| 既存の_vcn_id | 弦 | いいえ | ヌル | 既存のVCNのOCID | 新しいVCNが作成されない場合は、既存のVCNのOCIDをここに提供する必要があります。作成されたすべてのリソースは、この既存のVCNの一部になります(VCNが提供されていない場合)。 |
VCNが作成されると、デフォルトのリソース(ルートテーブル、セキュリティリスト、DHCPオプション)がそのまま残っていることに注意してください(いかなる方法でも変更されていません)。多くの場合、これらのリソースは使用されません。詳細については、デフォルトのリソース、VCNに付属のデフォルトコンポーネント、デフォルトのセキュリティリストに関するドキュメントを参照してください。
vcn_options
vcn_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。次の定義されたキー(およびデフォルト値)があります。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| 表示名 | 弦 | 「VCN」 | OCI APIに受け入れられる名前。 | VCNの特定の名前を定義するために使用されます。 |
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| cidr | 弦 | 「10.0.0.0/16」 | IPv4 CIDR | VCNに使用するIPv4 CIDRを指定します。 |
| enable_dns | ブール | 真実 | true/false | VCNでDNSを有効にするかどうか。 |
| DNS_LABEL | 弦 | 「VCN」 | 有効なDNS名。 | VCNに使用するDNSラベルを指定します。この値がnullの場合、dnsはVCNに対して無効になります。 |
例
次の例では、10.0.0.0/24のCIDR、モジュールテストの表示名、 TestVCNのDNSラベルを持つVCNを作成し、デフォルトのコンパートメントOCIDを使用します(上記の例には示されていません)。
module "oci_network" {
... /snip - shortened for brevity...
vcn_options = {
display_name = "Module test"
cidr = "10.0.0.0/24"
enable_dns = true
dns_label = "testvcn"
compartment_id = null
defined_tags = null
freeform_tags = null
}
}
| 属性 | データ型 | 必須 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|---|
| create_igw | ブール | いいえ | 間違い | true/false | IGWをVCNに作成するかどうか。 |
| IGW_OPTIONS | 地図 | いいえ | 以下を参照してください | 以下を参照してください | IGWのカスタマイズに使用できるオプションのパラメーター。 |
igw_options
igw_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。次の定義されたキー(およびデフォルト値)があります。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| 表示名 | 弦 | 「IGW」 | OCI APIに受け入れられる名前。 | IGWの特定の名前を定義するために使用されます。 |
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| 有効になっています | ブール | 真実 | true/false | IGWを有効にするかどうか。 |
例
module "oci_network" {
... /snip - shortened for brevity...
igw_options = {
display_name = "my_igw"
compartment_id = null
defined_tags = null
freeform_tags = null
enabled = false
}
}
上記の例では、 MY_IGWの表示名を持つVCNにIGW(有効)を作成し、デフォルトのコンパートメントOCIDを使用します(上記の例には示されていません)。
| 属性 | データ型 | 必須 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|---|
| create_natgw | ブール | いいえ | 間違い | true/false | VCNでNATGWを作成するかどうか。 |
| natgw_options | 地図 | いいえ | 以下を参照してください | 以下を参照してください | NATGWのカスタマイズに使用できるオプションのパラメーター。 |
natgw_options
natgw_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。次の定義されたキー(およびデフォルト値)があります。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| 表示名 | 弦 | 「ナット」 | OCI APIに受け入れられる名前。 | IGWの特定の名前を定義するために使用されます。 |
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| block_traffic | ブール | 間違い | true/false | NATGWがトラフィックをブロックすべきかどうか。 |
例
module "oci_network" {
... /snip - shortened for brevity...
natgw_options = {
display_name = "my_natgw"
compartment_id = null
defined_tags = null
freeform_tags = null
block_traffic = false
}
}
上記の例は、 my_natgwの表示名を持つVCNにNATGWを作成します。トラフィックをブロックせず、デフォルトのコンパートメントOCIDを使用します(上記の例には示されていません)。
| 属性 | データ型 | 必須 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|---|
| create_svcgw | ブール | いいえ | 間違い | true/false | SVCGWをVCNに作成するかどうか。 |
| svcgw_options | 地図 | いいえ | 以下を参照してください | 以下を参照してください | SVCGWのカスタマイズに使用できるオプションのパラメーター。 |
svcgw_options
svcgw_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。次の定義されたキー(およびデフォルト値)があります。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| 表示名 | 弦 | 「svcgw」 | OCI APIに受け入れられる名前。 | SVCGWの特定の名前を定義するために使用されます。 |
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| サービス | リスト(文字列) | ヌル | 有効なOCIサービスゲートウェイサービスのOCID。 | サービスゲートウェイで許可されるべきサービスを提供します。この地域のサービスのリストには、 svcgw_servicesモジュール出力を使用します(この例については以下を参照)。 |
例
module "oci_network" {
... /snip - shortened for brevity...
svcgw_options = {
display_name = "my_svcgw"
compartment_id = null
defined_tags = null
freeform_tags = null
services = [
module.oci_network.svcgw_services.0.id
]
}
}
上記の例では、 my_svcgwの表示名を持つVCNにSVCGWを作成し、デフォルトのコンパートメントOCID(上記の例には示されていません)を使用し、この地域で利用可能なサービスのリストで最初のサービスを使用します。
| 属性 | データ型 | 必須 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|---|
| create_drg | ブール | いいえ | 間違い | true/false | VCNにDRGを作成するかどうか。 |
| DRG_OPTIONS | 地図 | いいえ | 以下を参照してください | 以下を参照してください | DRGのカスタマイズに使用できるオプションのパラメーター。 |
drg_options
drg_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。次の定義されたキー(およびデフォルト値)があります。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| 表示名 | 弦 | 「DRG」 | OCI APIに受け入れられる名前。 | DRGの特定の名前を定義するために使用されます。 |
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| route_table_id | 弦 | ヌル | 有効で既存のOCIルートテーブルのOCID。 | これはオプションですが、ルートテーブルアソシエーションが必要な場合(DRGと)、この関連付けを確立する場所です。 |
例
module "oci_network" {
... /snip - shortened for brevity...
drg_options = {
display_name = "my_drg"
compartment_id = null
defined_tags = null
freeform_tags = null
route_table_id = null
}
}
上記の例では、 My_Drgの表示名を持つVCNにSVCGWを作成し、デフォルトのコンパートメントOCID(上記の例には示されていません)を使用し、ルートテーブルをDRGに関連付けません。
route_tables属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。キーはルートテーブルの表示名を示し、値は属性を定義するマップです。値は、次の定義されたキー(およびデフォルト値)を持つマップです。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| defined_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースに定義されたタグを設定する必要がある場合は、この属性を使用してください。 |
| freeform_tags | マップ(文字列) | {} | OCI APIに受け入れられるタグ名と値のマップ。 | このリソースにFreeformタグを設定する必要がある場合は、この属性を使用してください。 |
| route_rules | リスト(オブジェクト) - 以下を参照してください | {} | 以下を参照してください | これはオプションですが、ルートルールが構成されている場所です。 |
route_rules
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| next_hop_id | 弦 | なし | 次のホップリソースのOCID | これが次のホップが指定されている場所です。 |
| dst_type | 弦 | なし | cidr_block 、 service_cidr_block | DST属性にどのような目的地が与えられているかを指定します。 |
| dst | 弦 | なし | 有効なOCI宛先(CIDRまたはサービスCIDR)。 | このルートルールに使用する宛先(リモートネットワーク)を指定します。 |
例
module "oci_network" {
... /snip - shortened for brevity...
route_tables = {
rt1 = {
display_name = "my_drg"
compartment_id = null
defined_tags = null
freeform_tags = null
route_rules = [
{
dst = "0.0.0.0/0"
dst_type = "CIDR_BLOCK"
next_hop_id = local.next_hop_ids["igw"]
}
]
}
}
}
上記の例は、1つのルートルール(インターネットゲートウェイへのデフォルトルートを指す)を含むデフォルトのコンパートメントOCID(上記の例には示されていない)を使用して、 RT1の表示名を持つVCNにルートテーブルを作成します。
dhcp_options属性は、オプションのマップ属性です。この属性を使用する場合、すべてのキー/値を指定する必要があることに注意してください(Terraformでは、デフォルトまたはオプションのマップキー/値を許可しません)。キーはルートテーブルの表示名を示し、値は属性を定義するマップです。値は、次の定義されたキー(およびデフォルト値)を持つマップです。
| 鍵 | データ型 | デフォルト値 | 有効な値 | 説明 |
|---|---|---|---|---|
| コンパートメント_id | 弦 | ヌル | コンパートメントOCID | 既存のコンパートメントOCID(デフォルトのコンパートメントを使用しない場合)。この値の場合、デフォルトのコンパートメントOCIDが使用されます。 |
| server_type | 弦 | 「vcnlocalplusinternet」 | vcnlocalplusinternet 、 customdnsserver | OCI APIで許可されている値の1つ。 |
| search_domain_name | 弦 | "$ {oci_core_vcn.this.dns_label} .oraclevcn.com" local.vcn_with_dnsが設定されている場合、それ以外の場合はnull | 使用する有効なDNS名を提供します。 | これは、検索するドメインとして与えられます。 |
| Forwarder_1_ip | 弦 | ヌル | 有効なIPアドレス | これは、カスタムDNSサーバーが指定されているときに使用されます。 |
| Forwarder_2_ip | 弦 | ヌル | 有効なIPアドレス | これは、カスタムDNSサーバーが指定されているときに使用されます。 |
| Forwarder_3_ip | 弦 | ヌル | 有効なIPアドレス | これは、カスタムDNSサーバーが指定されているときに使用されます。 |
例
module "oci_network" {
... /snip - shortened for brevity...
dhcp_options = {
custom = {
compartment_id = null
server_type = local.dhcp_option_types["custom"]
forwarder_1_ip = "10.0.0.11"
forwarder_2_ip = "10.0.2.11"
forwarder_3_ip = null
search_domain_name = "test.local"
}
vcn = {
compartment_id = null
server_type = local.dhcp_option_types["vcn"]
forwarder_1_ip = null
forwarder_2_ip = null
forwarder_3_ip = null
search_domain_name = null
}
}
}
上記の例では、2つのDHCPオプションを作成します。1つは、2つのIPアドレスを使用し、カスタムDHCPオプションタイプを参照します。 VCN DHCPオプションは非常に基本的なものであり、VCNLocalPlusInternetとVCNという名前を使用する必要があることを示しています。
モジュールによって作成された各離散リソースがエクスポートされ、リソースのすべての返された属性にアクセスできます。
| リソース | 常に戻ってきましたか? | 説明 |
|---|---|---|
| 広告 | はい | あなたが働いている地域の利用可能な広告のリスト。 |
| VCN | いいえ* | モジュールによって作成されたVCNリソース。 |
| IGW | いいえ* | モジュールによって作成されたIGWリソース(要求/作成された場合)。 |
| natgw | いいえ* | モジュールによって作成されたNATGWリソース(要求/作成された場合)。 |
| svcgw | いいえ* | モジュールによって作成されたSVCGWリソース(要求/作成された場合)。 |
| svcgw_services | はい | 使用できるサービス。 |
| drg | いいえ* | モジュールによって作成されたDRGおよびDrgattachmentリソース(要求/作成された場合)。 DRGはDRG.DRGを介してアクセス可能であり、DRG.DRG_ATTACHMENTを介してDRGATCHACHMENTを介してアクセス可能であることに注意してください。 |
| route_tables | いいえ* | モジュールによって作成/管理されたルートテーブル(要求/作成された場合)。マップが返されます。キーはルートテーブルの名前であり、値はすべてのリソース属性の完全なリストです。 |
| DHCP_OPTIONS | いいえ* | モジュールによって作成/管理されたDHCPオプション(要求/作成された場合)。マップが返されます。キーはDHCPオプションの名前で、値はすべてのリソース属性の完全なリストです。 |
*リソースの作成が要求された場合にのみ返されます。
テラフォームにエラーを引き起こすことなく(それらが返されていなくても)、出力を引き続き参照することができることに注意してください(これらの場合にエラーを投げかけないのに十分に賢くなければなりません)。
vcn_options 、 igw_optionsなど)に単一の要素を提供する場合、それらすべてを提供する必要があることに注意してください。マップには、マップ内のキーのオプション(またはデフォルト値)の概念がなく、すべてのキー/値を渡す必要があります(1つのキーが渡される場合、すべてのキーを渡す必要があります)。terraform destroyを使用してから、 terraform apply ( terraform apply代わりに): Error: Cycle: module.oci_network.oci_core_nat_gateway.this[0], module.oci_network.output.natgw, module.oci_network.oci_core_service_gateway.this[0], module.oci_network.output.svcgw, module.oci_network.oci_core_service_gateway.this[0] (destroy), module.oci_network.oci_core_nat_gateway.this[0] (destroy), module.oci_network.oci_core_vcn.this[0] (destroy), module.oci_network.oci_core_drg_attachment.this[0], module.oci_network.oci_core_route_table.this[1] (destroy), module.oci_network.oci_core_drg_attachment.this[0] (destroy), module.oci_network.output.drg, local.next_hop_ids, module.oci_network.var.route_tables, module.oci_network.oci_core_route_table.this (prepare state), module.oci_network.oci_core_route_table.this[0] (destroy), module.oci_network.oci_core_internet_gateway.this[0] (destroy), module.oci_network.oci_core_internet_gateway.this[0], module.oci_network.output.igw
リリースノート情報のリリースノートを参照してください。
このモジュールは、Macos Mojaveバージョン10.14.5でTerraformを実行することで開発およびテストされています
user-mac$ terraform --version
Terraform v0.12.3
+ provider.oci v3.31.0
このプロジェクトはオープンソースです。 Oracleは、オープンソースコミュニティによって行われたあらゆる貢献を高く評価しています。
著作権(c)2020 Oracleおよび/またはその関連会社。
https://oss.oracle.com/licenses/uplに示すように、ユニバーサル許容ライセンスv 1.0の下でライセンスされています。
詳細については、ライセンスを参照してください。