首页 > 解决方案 > 将两个现有的 Terraform 状态组合为模块

问题描述

现在我有一个由多个目录组成的 Terraform 项目:

root
|- stack
|- applications
   |- app1
   |- app2
   |- app3

我想用.tf根目录中的单个文件和stack/app*目录作为模块来重构这个项目。从 TF 的角度来看,我知道如何做到这一点,但由于这个项目已经部署在两个不同的环境中,我试图找出将现有stack/app*资源迁移到新的组合状态文件或至少自动化的最佳方法terraform import我需要运行的所有命令。

有任何想法吗?

标签: terraform

解决方案


您可能想要使用terraform state mv将状态从每个app状态移动到stack状态。确切的用法将取决于您用于您的状态的后端类型。您可以从此处的文档中看到一个示例。请务必在执行此操作之前备份所有状态文件,以便在出现问题时轻松恢复。


推荐阅读