0

我有一个我正在研究的 AWS ou/account/infra 部署自动化管道,它使用 terragrunt、terraform 和 terraform 云将账户部署到 AWS 组织。我local在 TF Cloud 中使用执行,所以此时我在我的机器上本地运行它,并且只有状态存储在 TFC(与 S3 或 GCS 相对)中。Terragrunt 与这种状态存储技术兼容,但我发现如果我apply的资源(工作得很好)然后清理.terragrunt-cache( find . -type d -name ".terragrunt-cache" -prune -exec rm -rf {} \; ) 然后plan或者apply之前创建的资源,我会失去与远程状态的同步,它想要重新创建所有内容. 当我重新计划时,backend.tf文件由 Terragrunt重新生成.terragrunt-cache,我想知道提供者是否正在获取一个新 ID,该 ID 与另一个状态的先前提供者不同步。我要尝试的一种技巧是使用别名。根据 terragrunt 文档,这应该不是问题,因为状态会持续存在并且缓存可能会丢失和重新生成。

关于我的问题可能是什么的任何想法?我是 Terragrunt 的新手,现在正在做一些初步调查。

我的设计基于infrastructure-live示例(以及自述文件中链接的相应模块)。Terragrunt 在这里共享它:https ://github.com/gruntwork-io/terragrunt-infrastructure-live-example

terragrunt plan-all -refresh=true从这个目录结构运行:

teamname
├── Makefile
├── base
│   └── terragrunt.hcl
├── deploy.hcl
├── dev
│   ├── account
│   │   └── terragrunt.hcl
│   ├── env.hcl
│   ├── iam
│   │   └── terragrunt.hcl
│   ├── regions
│   │   ├── us-east-1
│   │   │   ├── region.hcl
│   │   │   └── terragrunt.hcl
│   │   └── us-west-2
│   │       ├── region.hcl
│   │       └── terragrunt.hcl
│   └── terragrunt.hcl
└── terragrunt.hcl

account/我为帐户 (in ) 和根帐户 () 中的基础设施生成一个状态base/。所有 Terraform 模块都在一个单独的存储库中。

4

0 回答 0