terraform - 了解 OCI 的 terraform
问题描述
我在这里有3个问题:
我在 Oracle Cloud Infrastructure 中创建了 terraform 脚本来构建实例和其他资源。但我无法在网络脚本中获取任何用于路由表配置和服务的脚本。所以我让他们手动。我当前的表只有资源名称,其余所有配置均为空白。所以我需要帮助来获得一个正确支持的 OCI 脚本来创建带有配置的路由表。
由于我手动执行此类操作,因此在对脚本进行一些更改后,我无法提供 terraform apply,因为 terraform apply 将删除我手动创建的所有规则。那么每次我更改脚本时都必须强制应用 terraform 吗?或者我可以手动输入配置并同时匹配 terraform 脚本中的配置,以便一切都完好无损?
在每次 terraform 更改后,我可以看到 2 个文件正在变大(terraform.tfstate、terraform.tfstate.backup)这两个文件是什么?如果那是备份文件,那么如果我的配置搞砸了,它将如何帮助我恢复?
解决方案
在 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)
希望这可以帮助。
推荐阅读
- javascript - 将 ESlint 与 expressjs 一起使用
- javascript - 在 MVC 中向 bootstrapTable 添加删除按钮
- stata - Stata:删除非唯一重复项
- visual-studio - 我们如何在 Visual Studio 中更改工具窗口标题栏的高度?
- python - 当我从 Django 中的查询中删除所有项目时,项目 ID 不会重置
- aspnetboilerplate - 如何解决 VS-2019 上的调试错误
- docker - Windows 10上的docker撰写问题
- android - 在 Android 中构建 Apache Ftp 服务器。它总是列出导演。需要从 Assets 渲染 html 页面
- c# - Task.Wait 到所有自己的类型化任务
- c++ - 有没有办法在 COM 指针对象的执行线程中强制同步销毁?