0

请告诉我是否有任何方法可以使某些 Terraspace 堆栈在某些环境中通用?例如,我有一个适用于所有非生产环境的 AWS 账户,并且我想对所有环境使用相同的 VPC,所有其他资源(例如 EC2、RDS、SQS 等)将因每个环境而异且特定. 那么有没有办法将公共 VPC 堆栈的状态(首先是输出)共享给其他环境(开发、阶段、测试等)以及如何防止将 VPC 堆栈分别应用于terraspace build <environment>舞台上的每个环境?

4

1 回答 1

0

您好,您可以创建模块,每个模块将代表一个堆栈并在您的环境中使用。模块是一起使用的多个资源的容器。模块可用于创建轻量级抽象,以便您可以根据其架构来描述您的基础设施,而不是直接根据物理对象。

这是一个参考

例如图像你的堆栈是这样的:

stage
  └ vpc
  └ services
      └ frontend-app
      └ backend-app
  └ data-storage
      └ mysql
      └ redis
prod
  └ vpc
  └ services
      └ frontend-app
      └ backend-app
  └ data-storage
      └ mysql
      └ redis
mgmt
  └ vpc
  └ services
      └ bastion-host
      └ jenkins
global
  └ iam
  └ s3

因此,如果您想在单独的 git 项目中创建模块并使用每个 env 中的模块:

live.git
  └ stage
      └ vpc
      └ services
          └ frontend-app
          └ backend-app
      └ data-storage
          └ mysql
          └ redis
  └ prod
      └ vpc
      └ services
          └ frontend-app
          └ backend-app
      └ data-storage
          └ mysql
          └ redis
  └ mgmt
      └ vpc
      └ services
          └ bastion-host
          └ jenkins
  └ global
      └ iam
      └ s3
modules.git
  └ data-stores
       └ mysql
       └ redis           
  └ mgmt
       └ vpc           
       └ jenkins           
  └ security
       └ iam
       └ s3
       └ bastion-host
  └ services
       └ webserver-cluster

这是有关如何创建模块的链接

于 2020-11-17T15:49:02.497 回答