Modul ini menyediakan bootstrap awal yang diperlukan untuk menyediakan jaringan cloud virtual (VCN) baru dan layanan opsional lainnya di Oracle Cloud Infrastructure (OCI).
VCN adalah fondasi inti dari jaringan di OCI. Modul ini menyediakan kemampuan untuk membuat sumber daya berikut:
| Sumber | Dibuat secara default? |
|---|---|
| Vcn | Tidak (opsional) |
| Gateway internet | Tidak (opsional) |
| Gateway Nat | Tidak (opsional) |
| Gateway Layanan | Tidak (opsional) |
| Gateway perutean dinamis | Tidak (opsional) |
| Benteng pertahanan | Tidak (opsional) |
Dengan menggunakan modul ini, jaringan cloud dasar akan dibuat, termasuk jalur komunikasi dasar dasar (untuk sebagian besar kasus penggunaan, meskipun tidak semua). Untuk situasi di mana Peering VPN-Connect, FastConnect atau VCN diperlukan, layanan ini perlu dibangun di atas VCN yang digunakan oleh modul ini.
Beberapa contoh fungsional penuh telah disediakan di direktori examples . Lihat README.md di setiap Contoh Direktori untuk Arah khusus untuk setiap contoh.
Untuk memulai dengan cepat, untuk penyebaran minimum, Anda dapat menggunakan contoh berikut:
module "oci_network" {
source = "../../"
#source = "oracle-terraform-modules/default-vcn/oci"
default_compartment_id = "${var.compartment_id}"
}
Ini akan menggunakan VCN menggunakan default modul. Tinjau readme ini untuk deskripsi terperinci dari parameter ini.
Modul layanan inti ini biasanya digunakan pada penempatan, tanpa diperlukan akses lebih lanjut; Anda mungkin perlu mengakses benteng, jika diminta untuk dibuat sebagai bagian dari solusi.
Anda dapat terus mengelola lingkungan yang digunakan menggunakan Terraform (terbaik), OCI CLI, OCI Console (UI), langsung melalui API, dll.
| Atribut | Tipe data | Diperlukan | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|---|
| default_compartment_id | rangkaian | Ya | tidak ada | string kompartemen ocid | Ini adalah OCID default yang akan digunakan saat membuat objek (kecuali ditimpa untuk objek tertentu). Ini harus menjadi OCID dari kompartemen yang sudah ada sebelumnya (tidak akan membuat kompartemen). |
| vcn_options | peta | TIDAK | Lihat di bawah | Lihat di bawah | Parameter opsional yang dapat digunakan untuk menyesuaikan VCN. |
| EXTRITED_VCN_ID | rangkaian | TIDAK | batal | Ocid dari vcn yang sudah ada sebelumnya | Jika VCN baru tidak akan dibuat, maka OCID dari VCN yang ada harus disediakan di sini. Semua sumber daya yang dibuat akan menjadi bagian dari VCN yang sudah ada sebelumnya (jika VCN tidak disediakan). |
Perhatikan bahwa ketika VCN dibuat, sumber daya default (tabel rute, daftar keamanan dan opsi DHCP) dibiarkan apa adanya (tidak dimodifikasi dengan cara apa pun). Seringkali sumber daya ini tidak digunakan. Lihat dokumentasi di sekitar sumber daya default, komponen default yang datang dengan VCN Anda dan daftar keamanan default Anda untuk informasi lebih lanjut.
vcn_options
Atribut vcn_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Ini memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| display_name | rangkaian | "VCN" | Nama apa pun yang dapat diterima oleh OCI API. | Digunakan untuk mendefinisikan nama tertentu untuk VCN Anda. |
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| CIDR | rangkaian | "10.0.0.0/16" | IPv4 CIDR | Tentukan CIDR IPv4 yang akan digunakan untuk VCN. |
| enable_dns | bool | BENAR | Benar/Salah | Apakah DNS harus diaktifkan di VCN atau tidak. |
| dns_label | rangkaian | "VCN" | Nama DNS yang valid. | Tentukan label DNS yang akan digunakan untuk VCN. Jika nilai ini nol, DNS akan dinonaktifkan untuk VCN. |
Contoh
Contoh berikut membuat VCN dengan CIDR 10.0.0.0/24, nama tampilan uji modul , label DNS testvcn dan gunakan kompartemen default OCID (tidak ditampilkan dalam contoh di atas).
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
}
}
| Atribut | Tipe data | Diperlukan | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|---|
| create_igw | bool | TIDAK | PALSU | Benar/Salah | Apakah IGW harus dibuat di VCN atau tidak. |
| igw_options | peta | TIDAK | Lihat di bawah | Lihat di bawah | Parameter opsional yang dapat digunakan untuk menyesuaikan IGW. |
igw_options
Atribut igw_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Ini memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| display_name | rangkaian | "IGW" | Nama apa pun yang dapat diterima oleh OCI API. | Digunakan untuk mendefinisikan nama tertentu untuk IGW Anda. |
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| diaktifkan | bool | BENAR | Benar/Salah | Apakah IGW harus diaktifkan atau tidak. |
Contoh
module "oci_network" {
... /snip - shortened for brevity...
igw_options = {
display_name = "my_igw"
compartment_id = null
defined_tags = null
freeform_tags = null
enabled = false
}
}
Contoh di atas akan membuat IGW (diaktifkan) di VCN dengan nama tampilan my_igw dan menggunakan kompartemen default OCID (tidak ditampilkan pada contoh di atas).
| Atribut | Tipe data | Diperlukan | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|---|
| create_natgw | bool | TIDAK | PALSU | Benar/Salah | Apakah natgw harus dibuat di VCN atau tidak. |
| natgw_options | peta | TIDAK | Lihat di bawah | Lihat di bawah | Parameter opsional yang dapat digunakan untuk menyesuaikan NATGW. |
natgw_options
Atribut natgw_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Ini memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| display_name | rangkaian | "Natgw" | Nama apa pun yang dapat diterima oleh OCI API. | Digunakan untuk mendefinisikan nama tertentu untuk IGW Anda. |
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| block_traffic | bool | PALSU | Benar/Salah | Apakah natgw harus memblokir lalu lintas atau tidak. |
Contoh
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
}
}
Contoh di atas akan membuat NATGW di VCN dengan nama tampilan my_natgw , itu tidak akan memblokir lalu lintas dan akan menggunakan kompartemen default OCID (tidak ditampilkan dalam contoh di atas).
| Atribut | Tipe data | Diperlukan | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|---|
| create_svcgw | bool | TIDAK | PALSU | Benar/Salah | Apakah SVCGW harus dibuat di VCN atau tidak. |
| svcgw_options | peta | TIDAK | Lihat di bawah | Lihat di bawah | Parameter opsional yang dapat digunakan untuk menyesuaikan SVCGW. |
svcgw_options
Atribut svcgw_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Ini memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| display_name | rangkaian | "svcgw" | Nama apa pun yang dapat diterima oleh OCI API. | Digunakan untuk mendefinisikan nama tertentu untuk SVCGW Anda. |
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| Layanan | Daftar (String) | batal | OCID (s) dari Layanan Gateway Layanan OCI yang valid. | Memberikan layanan yang harus diizinkan oleh Gateway Layanan. Gunakan output modul svcgw_services untuk daftar layanan di wilayah ini (lihat di bawah untuk contoh ini). |
Contoh
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
]
}
}
Contoh di atas akan membuat SVCGW di VCN dengan nama tampilan MY_SVCGW , gunakan OCID kompartemen default (tidak ditampilkan dalam contoh di atas) dan akan menggunakan layanan pertama dalam daftar layanan yang tersedia di wilayah tersebut.
| Atribut | Tipe data | Diperlukan | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|---|
| create_drg | bool | TIDAK | PALSU | Benar/Salah | Apakah DRG harus dibuat di VCN atau tidak. |
| drg_options | peta | TIDAK | Lihat di bawah | Lihat di bawah | Parameter opsional yang dapat digunakan untuk menyesuaikan DRG. |
drg_options
Atribut drg_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Ini memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| display_name | rangkaian | "DRG" | Nama apa pun yang dapat diterima oleh OCI API. | Digunakan untuk mendefinisikan nama tertentu untuk DRG Anda. |
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| route_table_id | rangkaian | batal | OCID dari tabel rute OCI yang valid dan sudah ada sebelumnya. | Ini opsional, tetapi dalam kasus di mana asosiasi tabel rute diinginkan (dengan DRG), itu adalah tempat untuk membangun asosiasi ini. |
Contoh
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
}
}
Contoh di atas akan membuat SVCGW di VCN dengan nama tampilan MY_DRG , gunakan OCID kompartemen default (tidak ditampilkan dalam contoh di atas) dan tidak akan mengaitkan tabel rute apa pun dengan DRG.
Atribut route_tables adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Kunci menunjukkan nama tampilan untuk tabel rute, sedangkan nilainya adalah peta yang mendefinisikan atribut. Nilai adalah peta yang memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| Defined_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag yang ditentukan harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| FreeForm_tags | peta (string) | {} | Peta nama dan nilai tag apa pun yang dapat diterima oleh OCI API. | Jika ada tag bentuk bebas yang harus ditetapkan pada sumber daya ini, lakukan dengan atribut ini. |
| route_rules | Daftar (Objek) - Lihat di bawah | {} | Lihat di bawah | Ini opsional, tetapi merupakan tempat di mana aturan rute dikonfigurasi. |
route_rules
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| next_hop_id | rangkaian | tidak ada | Ocid dari sumber daya hop berikutnya | Di sinilah tempat-hop berikutnya ditentukan. |
| dst_type | rangkaian | tidak ada | Cidr_block , service_cidr_block | Tentukan jenis tujuan apa yang diberikan dalam atribut DST . |
| dst | rangkaian | tidak ada | Tujuan OCI yang valid (CIDR atau layanan CIDR). | Tentukan tujuan (jaringan jarak jauh) yang akan digunakan untuk aturan rute ini. |
Contoh
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"]
}
]
}
}
}
Contoh di atas akan membuat tabel rute di VCN dengan nama tampilan RT1 menggunakan kompartemen default OCID (tidak ditampilkan dalam contoh di atas), berisi satu aturan rute (menunjuk rute default ke gateway internet).
Atribut dhcp_options adalah atribut peta opsional. Perhatikan bahwa jika atribut ini digunakan, semua kunci/nilai harus ditentukan (Terraform tidak memungkinkan untuk kunci/nilai peta opsional atau opsional). Kunci menunjukkan nama tampilan untuk tabel rute, sedangkan nilainya adalah peta yang mendefinisikan atribut. Nilai adalah peta yang memiliki kunci yang ditentukan berikut (dan nilai default):
| Kunci | Tipe data | Nilai default | Nilai yang valid | Keterangan |
|---|---|---|---|---|
| compartment_id | rangkaian | batal | Kompartemen Ocid | Kompartemen yang sudah ada sebelumnya OCID (jika kompartemen default tidak akan digunakan). Jika nilai ini nol, kompartemen default OCID akan digunakan. |
| server_type | rangkaian | "Vcnlocalplusinternet" | VcnlocalplusInternet , customdnsserver | Salah satu nilai yang diizinkan oleh OCI API. |
| search_domain_name | rangkaian | "$ {oci_core_vcn.this.dns_label} .oraclevcn.com" jika local.vcn_with_dns diatur, null sebaliknya | Berikan nama DNS yang valid untuk digunakan. | Ini akan diberikan sebagai domain yang akan dicari. |
| Forwarder_1_ip | rangkaian | batal | Alamat IP apa pun yang valid | Ini digunakan saat server DNS khusus ditentukan. |
| Forwarder_2_ip | rangkaian | batal | Alamat IP apa pun yang valid | Ini digunakan saat server DNS khusus ditentukan. |
| Forwarder_3_ip | rangkaian | batal | Alamat IP apa pun yang valid | Ini digunakan saat server DNS khusus ditentukan. |
Contoh
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
}
}
}
Contoh di atas akan membuat dua opsi DHCP, satu bernama Custom , yang memiliki dua alamat IP yang digunakan dan merujuk jenis opsi DHCP khusus. Opsi VCN DHCP cukup mendasar, hanya menunjukkan bahwa ia harus menggunakan vcnlocalplusinternet dan nama VCN .
Setiap sumber diskrit yang dibuat oleh modul akan diekspor, memungkinkan akses ke semua atribut yang dikembalikan untuk sumber daya.
| Sumber | Selalu dikembalikan? | Keterangan |
|---|---|---|
| iklan | Ya | Daftar iklan yang tersedia untuk wilayah tempat Anda bekerja. |
| vcn | TIDAK* | Sumber daya VCN yang telah dibuat oleh modul. |
| igw | TIDAK* | Sumber daya IGW yang dibuat oleh modul (jika diminta/dibuat). |
| natgw | TIDAK* | Sumber daya NATGW yang dibuat oleh modul (jika diminta/dibuat). |
| SVCGW | TIDAK* | Sumber daya SVCGW yang dibuat oleh modul (jika diminta/dibuat). |
| svcgw_services | Ya | Layanan yang tersedia yang dapat digunakan. |
| drg | TIDAK* | Sumber Daya DRG dan DRGAttachment yang dibuat oleh modul (jika diminta/dibuat). Perhatikan bahwa DRG dapat diakses melalui DRG.DRG, dan DRGAttachment melalui DRG.DRG_ATTACHMENT. |
| route_tables | TIDAK* | Tabel rute dibuat/dikelola oleh modul (jika diminta/dibuat). Peta dikembalikan, di mana kunci adalah nama tabel rute dan nilainya adalah daftar lengkap dari semua atribut sumber daya. |
| dhcp_options | TIDAK* | Opsi DHCP dibuat/dikelola oleh modul (jika diminta/dibuat). Peta dikembalikan, di mana kunci adalah nama opsi DHCP dan nilainya adalah daftar lengkap dari semua atribut sumber daya. |
*Hanya dikembalikan ketika sumber daya telah diminta untuk dibuat.
Perhatikan bahwa Anda mungkin masih merujuk output (bahkan jika mereka tidak dikembalikan) tanpa menyebabkan kesalahan dalam terraform (harus cukup pintar untuk mengetahui untuk tidak melempar kesalahan dalam kasus ini).
vcn_options , igw_options , dll), Anda harus menyediakan semuanya. Peta tidak memiliki gagasan opsional (atau nilai default) untuk kunci dalam peta, yang mensyaratkan bahwa semua kunci/nilai dilewati (jika satu kunci dilewatkan, semua kunci harus dilewati).terraform destroy , maka terraform apply (alih -alih mengandalkan terraform apply untuk menangani berbagai hal dengan benar): 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
Lihat Catatan Rilis untuk informasi catatan rilis.
Modul ini telah dikembangkan dan diuji dengan menjalankan Terraform pada MacOS Mojave versi 10.14.5
user-mac$ terraform --version
Terraform v0.12.3
+ provider.oci v3.31.0
Proyek ini adalah open source. Oracle menghargai setiap kontribusi yang dibuat oleh komunitas open source.
Hak Cipta (C) 2020 Oracle dan/atau afiliasinya.
Lisensi di bawah lisensi permisif universal v 1.0 seperti yang ditunjukkan di https://oss.oracle.com/licenses/upl.
Lihat lisensi untuk detail lebih lanjut.