我需要在AWS中创建和管理多个客户环境,并且希望利用Terraform部署所有必要的资源。除了客户用来访问其中一台服务器的URL外,每个客户环境基本相同。

我整理了一个Terraform配置,该配置可为给定客户部署所有资源。但是...如何采用相同的配置并将其应用到下一个客户,而不复制整个Terraform目录并为每个客户复制该目录。 (我可以有100个)

我听说过工作区和/或模块。有人看过关于这方面的最佳实践文章吗?

谢谢

最佳答案

您应该modulerize your code,然后可以轻松地将模块(从git存储库中)重复使用,以将不同的变量用于该客户。在这种情况下,对于每个客户,您最终只会得到一个配置主模块的文件。

每个客户都有一个目录,带有一个terraform文件,该文件可加载并配置模块。如果在该目录中使用terraform apply,则状态也将在该目录中。为了确保您的团队也可以部署和进行更改,建议使用backend,例如S3,以便将状态写入此处。请注意,您必须在每个客户的各自目录中配置一个后端。确保每个客户的后端不冲突(例如,在S3中使用不同的路径)。

Nicki Watt在此方面做了很好的介绍。您可以观看视频here并在here处播放幻灯片。

关于module - 为客户帐户配置Terraform(工作区,模块等)最佳实践?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46266357/

10-16 19:06