【问题标题】:understand the terraform for OCI了解 OCI 的 terraform
【发布时间】:2018-12-27 19:59:05
【问题描述】:

我有 3 个问题:

我在 Oracle 云基础设施中创建了 terraform 表单脚本来构建实例和其他资源。但我无法在网络脚本中获取任何用于路由表配置和服务的脚本。所以我让他们手动。我当前的表只有资源名称,其余所有配置均为空白。所以我需要帮助来获得一个正确支持的 OCI 脚本来创建带有配置的路由表。

由于我手动执行此类操作,因此在对脚本进行一些更改后,我无法提供 terraform apply,因为 terraform apply 将删除我手动创建的所有规则。那么每次我更改脚本时都必须强制应用 terraform 吗?或者我可以手动输入配置并同时匹配 terraform 脚本中的配置,以便一切都完好无损?

每次 terraform 更改后,我可以看到 2 个文件正在变大(terraform.tfstate、terraform.tfstate.backup)这两个文件是什么?如果那是一个备份文件,那么如果我的配置搞砸了,它将如何帮助我恢复?

【问题讨论】:

    标签: terraform oracle-cloud-infrastructure


    【解决方案1】:

    在 Terraform 中,配置脚本始终是事实的来源。应用配置时; Terraform 将支持该配置的设置,并覆盖在 Terraform 之外手动完成的任何更改。

    为确保您的手动更改不会被覆盖,您应该确保配置始终与手动更改匹配。将手动资源导入配置的一种方法是使用“terraform import”(请参阅​​https://www.terraform.io/docs/import/index.html)。

    Terraform 使用 terraform.tfstate 和 terraform.tfstate.backup 文件来跟踪 Terraform 创建的资源的最新状态。这些文件用于帮助 Terraform 确定您的配置脚本是否已偏离状态;所以它知道如何应用你的配置脚本。据我所知,如果您弄乱了配置,这些状态文件并不打算用作备份文件。 (见https://www.terraform.io/docs/state/index.html

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      以下是 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-26
        • 2021-01-01
        • 2019-06-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多