我如何从terraform重新开始?

时间:2019-01-30 02:15:11

标签: amazon-web-services terraform terraform-provider-aws

在我的AWS基础设施中,一个应用程序下存在多个环境,即:

  • foo-application(AWS elasticbeanstalk应用程序)
  • foo-application-dev(tomcat envs)
  • foo-application-int
  • foo-application-sys

在这些环境中,SYS最接近我需要的体系结构和配置。我希望能够重新创建其他环境,使其看起来像sys(但名为dev,int)。我有最初用于创建某些env的terraform脚本,但是现在已经偏离了当前状态。我想从SYS中获取当前状态,并将其应用于dev和int。我是terraform和stackoverflow的新手,所以请给我一些懈怠:)

所有环境都有一个状态文件,这是我要尝试执行的操作,但不确定如何处理。

  • 删除所有状态文件
  • 从SYS工作区中的SYS env创建新的状态文件
  • 将状态复制到dev和int工作区
  • 应用dev和int计划并同步获取环境。

我希望这是有道理的。

我针对开发环境运行了一个地形计划,看来它要做的比我预期的要多得多。我的研究告诉我,terraform将当前状态与上次运行terraform进行比较-因此在env中手动完成的操作可能会引起问题。我没有足够的信心去运行应用程序,因为它担心会损坏我无法拥有的SYS环境。

我想要的是:除命名约定外,三个完全相同的环境。

1 个答案:

答案 0 :(得分:2)

您应使用the terraform import workflow将SYS环境的状态文件与您创建的实际基础结构对齐。请注意,如果您已在SYS环境中手动创建了大量基础结构,则将需要大量工作。

但是,在此过程结束时,您将获得针对SYS环境的一整套Terraform代码,您可以将其转换为可重用组件的模块。 You can then use this module将DEV和INT环境创建为SYS环境的克隆,但是具有不同的命名约定。