Как добавить новое правило в существующую таблицу маршрутов по умолчанию в OCI с помощью terraform
Я пытаюсь создать правило в существующей таблице маршрутов по умолчанию в OCI, используя terraform.
В основном я пытаюсь добавить правило для интернет-шлюза, чтобы получить к нему доступ с помощью ssh. не уверен, но я не могу получить доступ к TCP, пока я не добавлю правило в таблицу по умолчанию, новая таблица не работает для меня ..
Но в провайдере OCI опция доступна только для создания новой таблицы маршрутов с правилом вместо добавления правила в существующую / по умолчанию таблицу маршрутов.
Я просто могу найти ниже вариант для таблицы маршрутов в провайдере oci, остальное принадлежит DRG.
https://registry.terraform.io/providers/hashicorp/oci/latest/docs/resources/core_route_table
В настоящее время я использую приведенный ниже код terraform:
resource "oci_core_internet_gateway" "test_internet_gateway" {
#Required
compartment_id = var.compartment_ocid
vcn_id = oci_core_vcn.test_vcn.id
}
resource "oci_core_route_table" "test_route_table" {
#Required
compartment_id = var.compartment_ocid
vcn_id = oci_core_vcn.test_vcn.id
#display_name = "Default Route Table for xyz"
route_rules {
#Required
network_entity_id = oci_core_internet_gateway.test_internet_gateway.id
#cidr_block = "0.0.0.0/0"
destination = "0.0.0.0/0"
}
}
Любой способ или решение поможет !!!!
3 ответа
Отображаемый код terraform создает таблицу маршрутов и добавляет правило маршрута для 0.0.0.0/0. Недостающий элемент - сопоставить эту таблицу маршрутов с подсетью, в которой находится ваша виртуальная машина.
Вот пара мыслей:
- Вы создаете всю VCN и вычислительную виртуальную машину, тем самым полностью управляя своей инфраструктурой. Это также позволяет создать подсеть вдоль VCN и сопоставить с ней таблицу маршрутов.
- Используйте обнаружение ресурсов Terraform для создания кода TF для существующей инфраструктуры. После создания файлов конфигурации измените его на Сопоставление таблицы маршрутов с подсетью.
Наконец, проверьте эту страницу, чтобы узнать, как изменить ресурсы по умолчанию. Это может быть вашей быстрой победой.
Расширенный ответ @bmuthuv
На следующей странице есть некоторые подсказки, как мы можем использовать Управление ресурсами VCN по умолчанию:
https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformbestpractices_topic-vcndefaults.htm
Я заменил ресурс oci_core_route_table на oci_core_default_route_table. Странно то, что ресурс «oci_core_default_route_table» отсутствует в документе провайдера реестра.
resource "oci_core_default_route_table" "this" {
#SOURCE PAGE : https://www.tfwriter.com/oci/r/oci_core_default_route_table.html
manage_default_resource_id = oci_core_subnet.test_subnet.route_table_id
route_rules {
#Required
network_entity_id = oci_core_internet_gateway.test_internet_gateway.id
destination = "0.0.0.0/0"
}
}
Ресурсы подсети:
resource "oci_core_subnet" "test_subnet" {
#Required
cidr_block = "10.0.0.0/24"
compartment_id = var.compartment_ocid
vcn_id = oci_core_vcn.test_vcn.id
route_table_id = null
}
ОБНОВЛЕНИЕ для провайдера OCI
Чтобы ответить на ваш вопрос, используемая вами версия провайдера OCI (4.102.1) может не иметь необходимых функций для создания правил маршрутизации в таблице маршрутов по умолчанию в OCI. Это может быть связано с ошибкой или ограничением поставщика Terraform для OCI.
Вы можете проверить документацию поставщика Terraform и проблемы GitHub, чтобы узнать, есть ли какие-либо известные проблемы или обходные пути для этой проблемы. Также возможно, что более новая версия поставщика Terraform могла решить эту проблему, поэтому вы можете рассмотреть возможность обновления до последней версии, если это возможно.
Кроме того, вы можете добавить правила маршрутизации в таблицу маршрутов по умолчанию в OCI, используя другие инструменты или методы, такие как интерфейс командной строки OCI или консоль OCI.