【发布时间】:2019-01-18 02:35:24
【问题描述】:
如果一个人有两个 AWS 账户,一个用于开发,一个用于实时(例如)我知道可以使用 terraform 工作区来管理每个环境的状态。
但是,如果我将工作区从“dev”切换到“live”,有没有办法告诉 terraform 它现在应该将状态应用于实时帐户而不是测试帐户?
我想到的一种容易出错的方法是,每次切换工作区时交换我的secret.auto.tfvars 文件,因为我假设使用不同的访问密钥(属于“实时”帐户的那个)运行 AWS然后提供商将向该帐户申请。但是,交换工作区并存在错误的凭据会非常容易,这将针对错误的环境运行更改。
我正在寻找一种方法,几乎可以将工作区与 AWS 中的帐户 ID 链接起来。
我确实找到了这个https://github.com/hashicorp/terraform/issues/13700,但它指的是已弃用的env 命令,this comment 看起来特别有希望
更新
我在 GitHub 上找到了一些信息,我在其中留下了 this comment 作为对早期评论的回复,该评论建议考虑模块而不是工作区,实际上表明工作区不太适合这项任务。如果有人可以提供有关如何使用模块来解决同时维护“相同”基础架构的多个版本的问题的信息,我很想看看这如何改进工作空间的概念。
【问题讨论】:
标签: terraform terraform-provider-aws