Этот модуль предоставляет начальную загрузочную обработку, необходимую для обеспечения новой виртуальной облачной сети (VCN) и других дополнительных услуг в Oracle Cloud Infrastructure (OCI).
VCN является основной основой сети в OCI. Этот модуль дает возможность создавать следующие ресурсы:
| Ресурс | Создано по умолчанию? |
|---|---|
| Vcn | Нет (необязательно) |
| Интернет -шлюз | Нет (необязательно) |
| Nat Gateway | Нет (необязательно) |
| Сервисный шлюз | Нет (необязательно) |
| Динамический шлюз маршрутизации | Нет (необязательно) |
| Бастион | Нет (необязательно) |
Используя этот модуль, будет создана основная облачная сеть, включая основные пути основополагающих коммуникаций (для большинства случаев использования, хотя и не для всех). В ситуациях, когда необходимы VPN-Connect, FastConnect или VCN, эти услуги должны быть построены поверх VCN, развернутого этим модулем.
Несколько полностью функциональных примеров были представлены в каталоге examples . Обратитесь к README.md в каждом примере каталога для указаний, специфичных для каждого примера.
Чтобы начать быстро, для минимального развертывания вы можете использовать следующий пример:
module "oci_network" {
source = "../../"
#source = "oracle-terraform-modules/default-vcn/oci"
default_compartment_id = "${var.compartment_id}"
}
Это развернет VCN с использованием по умолчанию модуля. Просмотрите этот Readme для подробного описания этих параметров.
Этот основной сервисный модуль обычно используется при развертывании, без дальнейшего доступа; Возможно, вам потребуется получить доступ к бастиону, если его попросили создать как часть решения.
Вы можете продолжать управлять развернутой средой, используя Terraform (Best), OCI CLI, консоль OCI (UI), непосредственно через API и т. Д.
| Атрибут | Тип данных | Необходимый | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|---|
| default_compartment_id | нить | да | никто | строка отсека Ocid | Это OCID по умолчанию, который будет использоваться при создании объектов (если не переопределяется для какого -либо конкретного объекта). Это должен быть OCID ранее существовавшего отсека (он не создаст отсек). |
| vcn_options | карта | нет | см. ниже | см. ниже | Дополнительные параметры, которые можно использовать для настройки VCN. |
| Существующий_VCN_ID | нить | нет | нулевой | OCID любого ранее существовавшего VCN | Если новый VCN не должен быть создан, то здесь должен быть предоставлен OCID существующего VCN. Все созданные ресурсы будут частью этого ранее существовавшего VCN (если VCN не предоставлен). |
Обратите внимание, что по мере создания VCN ресурсы по умолчанию (таблица маршрутов, список безопасности и параметры DHCP) остаются как IS (ни в коем случае не изменяются). Часто эти ресурсы не используются. См. Документацию, касающиеся ресурсов по умолчанию, компонентов по умолчанию, которые поставляются с вашими списками безопасности VCN и по умолчанию для получения дополнительной информации.
vcn_options
Атрибут vcn_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Он имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| отображаемое имя | нить | "VCN" | Любое имя, приемлемое для API OCI. | Используется для определения конкретного имени для вашего VCN. |
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| CIDR | нить | "10.0.0.0/16" | IPv4 CIDR | Укажите IPv4 CIDR, который будет использоваться для VCN. |
| enable_dns | буль | истинный | Верно/Неверно | Независимо от того, следует ли включен DNS на VCN. |
| dns_label | нить | "VCN" | Действительное название DNS. | Укажите метку DNS, которая будет использоваться для VCN. Если это значение является нулевым, DNS будет отключен для VCN. |
Пример
В следующем примере создается VCN с CIDR 10.0.0.0/24, отображает имя модуля , метку DNS TestVCN и используйте 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 | буль | нет | ЛОЖЬ | Верно/Неверно | Должен ли IGW создаваться в VCN. |
| IGW_OPTIONS | карта | нет | см. ниже | см. ниже | Дополнительные параметры, которые можно использовать для настройки IGW. |
igw_options
Атрибут igw_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Он имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| отображаемое имя | нить | "IGW" | Любое имя, приемлемое для API OCI. | Используется для определения конкретного имени для вашего IGW. |
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| включено | буль | истинный | Верно/Неверно | Должен ли 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
}
}
Приведенный выше пример создаст IGW (включенный) в VCN с отображением имени MY_IGW и использует OCID по умолчанию (не показан в приведенном выше примере).
| Атрибут | Тип данных | Необходимый | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|---|
| create_natgw | буль | нет | ЛОЖЬ | Верно/Неверно | Независимо от того, следует ли создавать NATGW в VCN. |
| natgw_options | карта | нет | см. ниже | см. ниже | Дополнительные параметры, которые можно использовать для настройки NATGW. |
natgw_options
Атрибут natgw_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Он имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| отображаемое имя | нить | "NATGW" | Любое имя, приемлемое для API OCI. | Используется для определения конкретного имени для вашего IGW. |
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| block_traffic | буль | ЛОЖЬ | Верно/Неверно | Должен ли 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
}
}
Приведенный выше пример создаст NATGW в VCN с отображением имени MY_NATGW , он не будет блокировать трафик и будет использовать OCID по умолчанию (не показан в приведенном выше примере).
| Атрибут | Тип данных | Необходимый | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|---|
| create_svcgw | буль | нет | ЛОЖЬ | Верно/Неверно | Независимо от того, следует ли создавать SVCGW в VCN. |
| svcgw_options | карта | нет | см. ниже | см. ниже | Дополнительные параметры, которые можно использовать для настройки SVCGW. |
svcgw_options
Атрибут svcgw_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Он имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| отображаемое имя | нить | "SVCGW" | Любое имя, приемлемое для API OCI. | Используется для определения конкретного имени для вашего SVCGW. |
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| услуги | список (строка) | нулевой | OCID (ы) любых действительных услуг Service Gateway Service Gateway. | Предоставьте услугу, которая должна быть разрешена Сервисным шлюзом. Используйте вывод модуля 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
]
}
}
Приведенный выше пример создаст SVCGW в VCN с отображением имени MY_SVCGW , используйте OCID по умолчанию OCID (не показан в приведенном выше примере) и будет использовать первую службу в списке услуг, доступных в регионе.
| Атрибут | Тип данных | Необходимый | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|---|
| create_drg | буль | нет | ЛОЖЬ | Верно/Неверно | Независимо от того, следует ли создавать DRG в VCN. |
| drg_options | карта | нет | см. ниже | см. ниже | Дополнительные параметры, которые можно использовать для настройки DRG. |
drg_options
Атрибут drg_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Он имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| отображаемое имя | нить | "DRG" | Любое имя, приемлемое для API OCI. | Используется для определения конкретного имени для вашего DRG. |
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| route_table_id | нить | нулевой | OCID любой действительной, ранее существовавшей таблицы маршрутов OCI. | Это необязательно, но в тех случаях, когда нужна ассоциация таблиц маршрутов (с 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
}
}
Приведенный выше пример создаст SVCGW в VCN с отображением имени MY_DRG , используйте OCID по умолчанию OCID (не показан в приведенном выше примере) и не будет связывать какую -либо таблицу маршрутов с DRG.
Атрибут route_tables является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Ключ указывает имя отображения для таблицы маршрутов, а значение - это карта, которая определяет атрибуты. Значение - это карта, которая имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| defined_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо определенные теги должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| freeform_tags | карта (строка) | {} | Любая карта имен тегов и значений, которая приемлема для API OCI. | Если какие -либо теги Freeform должны быть установлены на этом ресурсе, сделайте это с этим атрибутом. |
| route_rules | Список (объект) - см. Ниже | {} | См. ниже | Это необязательно, но это место, где настраиваются правила маршрута. |
route_rules
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| next_hop_id | нить | никто | ОКИД СЛЕДУЮЩИЙ РЕСУРС | Здесь указан следующий хоп. |
| 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"]
}
]
}
}
}
Приведенный выше пример создаст таблицу маршрутов в VCN с именем отображения RT1 с использованием OCID по умолчанию (не показано в приведенном выше примере), содержащее одно правило маршрута (указывая маршрут по умолчанию к интернет -шлюзу).
Атрибут dhcp_options является необязательным атрибутом карты. Обратите внимание, что если используется этот атрибут, должны быть указаны все ключи/значения (Terraform не разрешает по умолчанию или необязательные клавиши/значения карты). Ключ указывает имя отображения для таблицы маршрутов, а значение - это карта, которая определяет атрибуты. Значение - это карта, которая имеет следующие определенные ключи (и значения по умолчанию):
| Ключ | Тип данных | Значение по умолчанию | Допустимые значения | Описание |
|---|---|---|---|---|
| compartment_id | нить | нулевой | Отсек Ocid | Ранее существовавший отсек OCID (если нельзя использовать компартмент по умолчанию). Если это значение является нулевым, будет использоваться OCID по умолчанию. |
| server_type | нить | "Vcnlocalplusinternet" | Vcnlocalplusinternet , customdnsserver | Одно из значений, разрешенных API OCI. |
| search_domain_name | нить | "$ {OCI_CORE_VCN.THIS.DNS_LABEL} .ORACLEVCN.COM" IF LOCAL.VCN_WITH_DNS установлен, NULL в противном случае | Предоставьте действительное название DNS, которое будет использоваться. | Это будет дано как домен, который будет искать. |
| Froader_1_IP | нить | нулевой | Любой действительный IP -адрес | Это используется, когда указан пользовательский DNS -сервер. |
| Froader_2_IP | нить | нулевой | Любой действительный IP -адрес | Это используется, когда указан пользовательский DNS -сервер. |
| Froader_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
}
}
}
Приведенный выше пример создаст два параметра DHCP, один из названий Custom , который использует два IP -адреса и ссылается на пользовательский тип опции DHCP. Вариант VCN DHCP довольно проста, просто указывающий на то, что он должен использовать VCNLocalPlusInternet и имя VCN .
Каждый дискретный ресурс, созданный модулем, будет экспортирован, что позволяет получить доступ ко всем возвращенным атрибутам для ресурса.
| Ресурс | Всегда возвращали? | Описание |
|---|---|---|
| объявление | да | Список доступных объявлений для региона, в котором вы работаете. |
| vcn | нет* | Ресурс VCN, который был создан модулем. |
| IGW | нет* | Ресурс IGW, созданный модулем (если он был запрошен/создан). |
| natgw | нет* | Ресурс NATGW, созданный модулем (если он был запрошен/создан). |
| Svcgw | нет* | Ресурс SVCGW, созданный модулем (если он был запрошен/создан). |
| svcgw_services | да | Доступные услуги, которые можно использовать. |
| дрг | нет* | Ресурсы DRG и DRGATTACHMENT, созданные модулем (если он был запрошен/создан). Обратите внимание, что DRG доступен через DRG.DRG и DRGATTACHMENT через DRG.DRG_ATTACHMENT. |
| route_tables | нет* | Таблицы маршрутов, созданные/управляемые модулем (если он был запрошен/создан). Возвращается карта, где ключ - это имя таблицы маршрутов, а значение представляет собой полный список всех атрибутов ресурса. |
| dhcp_options | нет* | Параметры DHCP, созданные/управляемые модулем (если он был запрошен/создан). Карта возвращается, где ключ - это имя опции DHCP, а значение - полный список всех атрибутов ресурса. |
*Возвращено только тогда, когда ресурс был запрошен для создания.
Обратите внимание, что вы все равно можете ссылаться на выходы (даже если они не возвращаются), не вызывая ошибку в Terraform (должно быть достаточно умным, чтобы знать, чтобы не бросать ошибку в этих случаях).
vcn_options , igw_options и т. Д.), Вы должны предоставить все их. Карты не имеют понятия о необязательных (или значении по умолчанию) для ключей в карте, требуя, чтобы все ключи/значения были переданы (если один ключ передается, все клавиши должны быть переданы).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
См. Примечания по выпуску для выпуска. Информация о примечаниях.
Этот модуль был разработан и протестирован с помощью Terraform на MacOS Mojave версии 10.14.5
user-mac$ terraform --version
Terraform v0.12.3
+ provider.oci v3.31.0
Этот проект с открытым исходным кодом. Oracle ценит любые взносы, внесенные сообществом с открытым исходным кодом.
Авторские права (C) 2020 Oracle и/или его филиалы.
Лицензирован в соответствии с универсальной разрешающей лицензией V 1.0, как показано по адресу https://oss.oracle.com/licenses/upl.
Смотрите лицензию для более подробной информации.