如何使Terraspace堆栈在少数环境中通用



请告诉我是否有任何方法可以使Terraspace堆栈在一些环境中通用?例如,我对所有非生产环境都有一个AWS帐户,并且我想对所有环境使用相同的VPC,所有其他资源(例如EC2、RDS、SQS等(对于每个环境都是不同的和特定的。那么,有没有办法将一个通用VPC堆栈的状态(首先是输出(共享给其他环境(dev、stage、test等(,以及如何防止在terraspace build <environment>stage上将VPC堆栈分别应用到每个环境?

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

这是一个参考

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

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

这里有一个关于如何创建模块的链接

最新更新