Понять терраформу для OCI

У меня есть 3 вопроса здесь:

Я создал скрипты формы terraform в Oracle Cloud Infrastructure для создания экземпляра и других ресурсов. Но я не могу получить какой-либо сценарий для конфигурации таблицы маршрутов и службы в сценарии сети. Так что я сделал их вручную. моя текущая таблица имеет только имя ресурса, остальное вся конфигурация пуста. Поэтому мне нужна помощь в получении правильно поддерживаемого скрипта для OCI для создания таблицы маршрутов с настройкой.

Так как я делал такие вещи вручную, я не могу применить terraform apply после внесения некоторых изменений в скрипт, так как terraform apply удалит все правила, которые я создал вручную. Так обязательно ли применять терраформ каждый раз, когда я меняю скрипт? или я могу ввести конфигурацию вручную и одновременно сопоставить ее в скрипте terraform, чтобы все было в порядке?

После каждого изменения terraform я вижу, что 2 файла увеличиваются (terraform.tfstate, terraform.tfstate.backup). Что это за два файла? если это резервный файл, то как он поможет мне восстановиться, если я испорчу свою конфигурацию?

2 ответа

В Terraform скрипт конфигурации всегда является источником правды. Когда вы применяете конфигурацию; Terraform предпочтет настройки этой конфигурации и отменит любые изменения, которые были сделаны вручную за пределами Terraform.

Чтобы убедиться, что ваши ручные изменения не перезаписаны, вы должны убедиться, что конфигурация всегда соответствует ручным изменениям. Одним из способов импорта ресурсов вручную в вашу конфигурацию является использование "импорта terraform" (см. https://www.terraform.io/docs/import/index.html).

Файлы terraform.tfstate и terraform.tfstate.backup используются Terraform для отслеживания последнего состояния ресурсов, созданных Terraform. Эти файлы используются, чтобы помочь Terraform определить, вышел ли сценарий конфигурации из состояния; поэтому он знает, как применить ваш конфигурационный скрипт. Насколько мне известно, эти файлы состояния не предназначены для резервного копирования, если вы испортили свою конфигурацию. (см. https://www.terraform.io/docs/state/index.html).

Надеюсь это поможет.

Вот пример для ресурса таблицы маршрутов в файле конфигурации Terraform:

resource "oci_core_route_table" "webserver-rt" {
    compartment_id = "${var.compartment_ocid}"
    vcn_id = "${oci_core_virtual_network.oci-vcn.id}"
    display_name = "webserver-rt"
    route_rules = [{
        destination = "0.0.0.0/0"
        network_entity_id = "${oci_core_internet_gateway.internet-gateway.id}"
    }]
}

Вы можете найти более подробную информацию здесь: https://github.com/terraform-providers/terraform-provider-oci/blob/master/docs/examples/networking/route_table/route_table.tf

Другие вопросы по тегам