首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分terraform tfstate文件

拆分terraform tfstate文件
EN

Stack Overflow用户
提问于 2017-10-05 12:09:55
回答 3查看 5.2K关注 0票数 6

我们从一个tfstate文件开始,随着时间的推移,它已经增长了相当多。

现在,计划它真的很慢,我现在想拆分成几个tfstate文件(一个用于我们的开发环境,一个用于通用共享基础设施,一个用于每个生产环境)。

就像https://charity.wtf/2016/03/30/terraform-vpc-and-why-you-want-a-tfstate-file-per-env/Terraform Multiple State Files Best Practice Examples描述的那样。

有没有什么现有的工具(内置的或没有的)来帮助解决这个问题呢?有点像terraform state mv,但是在tfstate之间?

EN

回答 3

Stack Overflow用户

发布于 2019-06-14 19:47:15

terraform state mv具有-state-out标志,您可以在其中定义要将资源移动到的另一个状态。

然而,我不能让它在0.11.14版本中工作,因此我手动剪切并粘贴了状态文件中的模块,这是我需要转移到另一个状态的,它工作得很好。

编辑:这里有一个变通方法,它基本上是加载两个状态文件,移动所需的状态,然后将它们重新上传到S3存储桶:https://github.com/hashicorp/terraform/pull/15652#issuecomment-410754814

票数 3
EN

Stack Overflow用户

发布于 2017-10-09 17:15:41

为基础设施和应用程序各有一个单独的状态文件是有意义的。

有没有任何现有的工具(内置的或没有的)来帮助解决这个问题?有点像terraform state mv,但是在tfstate之间?

不,据我所知。移出共享部件(例如ECS群集、ALB、网络配置、iam角色等)添加到单独的项目/存储库中。

当使用S3作为状态后端时,您可以为基础架构和应用程序状态定义不同的路径,例如:

  • /infrastructure/nonprod/terraform.tfstate
  • /infrastructure/prod/terraform.tfstate
  • /apps/app1/test/terraform.tfstate
  • /apps/app1/uat/terraform.tfstate
  • /apps/app1/prod/terraform.tfstate

当您想要将您的应用程序部署到测试或UAT时,您只需在基础设施项目中的terraform apply之前调用terraform init,通过提供到非prod S3状态的路径即可。然后,通过提供测试或UAT路径的路径,在您的应用程序平台配置上调用terraform init

理想情况下,您可以创建自己的shell脚本来配置和部署应用程序。然后,在您最喜欢的CI中,您可以创建一个管道来配置基础设施,并根据需要部署应用程序。确保将这些脚本参数化,以便您可以传递要配置的环境或要部署的应用程序,例如:

./my-shared-infrastructure/provision-infrastructure.sh nonprod

./my-app-1/deploy-application.sh uat v1.0

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 22:33:13

在一个复杂的世界里,从我所处的情况来看,我们走得更远。经过共同的努力,我们不仅成功地隔离了环境,而且成功地隔离了基础架构中的所有组件。

深入挖掘组件,我指的是每个组件都有一组模块/输出,在配置中没有额外的资源,但当然依赖问题已经出现了……通过一些数据{}引用微小的状态和一些脚本,没有什么是不能解决的。

结果令人惊叹。我们用不同的参数实例化了相同的组件,每个环境都是干净的,易于维护和操作。

我不推荐在现有的笨重的基础设施的情况下,如果你对单个单一的状态文件感到厌烦,那么需要一些额外的转换相关活动,但它可以在新建项目中实现大量的加速。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46577716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档