如何同时使用terraform创建两个不同的环境

时间:2017-08-16 07:19:56

标签: terraform

以下是我试图解决的问题 -

我们有一个名为'部署控制台的Web应用程序'我们将用它来管理AWS上的环境。

部署控制台将接收使用terraform创建/维护staging / prod环境的请求。

控制台可以/将并行接收请求。

所以我的问题是如何根据请求并行运行terraform以创建/维护环境,而不会搞砸相应环境的状态文件

我的terraform文件夹结构如下

  • terraform
    • create_env.tf
    • variables.tf
    • staging.tfvars
    • prod.tfvars
    • staging_backend_cnf.tfvars
    • prod_backend_cnf.tfvars
    • ec2module
      • create_ec2.tf
      • varialbes.tf
      • output.tf
    • elbmodule
      • create_ec2.tf
      • varialbes.tf
      • output.tf
    • ec2secmodule
      • create_ec2.tf
      • varialbes.tf
      • output.tf
    • elbsecmodule
      • create_ec2.tf
      • varialbes.tf
      • output.tf

1 个答案:

答案 0 :(得分:1)

如果您想通过并行运行避免冒着状态文件损坏的风险,那么您应该使用state file locking

因为您似乎正在使用AWS,所以您应该已经存储了state in S3,并且从那里只是添加DynamoDB锁定表的情况:

terraform {
  backend "s3" {
    bucket         = "mybucket"
    key            = "path/to/my/key"
    region         = "us-east-1"
    dynamodb_table = "mylocktable
  }
}