按您指定的顺序使用terrafrom构建AWS基础架构

问题描述:

最近我遇到了使用terraform构建AWS基础架构以为某些应用程序设置集群环境的情况。事情是当我应用terraform脚本时,它会构建所有必要的模块并完全旋转多个实例,然后完成。这可能意味着要这样做,反正terraform大大地构建这样的infra没有任何责任。按您指定的顺序使用terrafrom构建AWS基础架构

当我尝试设置此类infra以集群方式部署应用程序时,此处使用的是配置管理工具。在构建ec2实例时,CM脚本被相应地调用和配置。问题出现在对模块有一定依赖性的时候。

考虑2(A & B)组件是Autoscale组的一部分并且2(C & D)组件是正常的ec2实例的场景。在这里,如果我希望首先构建A,然后C构建C,因为C实例依赖于必须首先完全配置的A,反之亦然,那么如何控制terraform帮助我实现这一目标的顺序。

请有人可以帮助我实现它。

在此先感谢

可以使用depends_on参数。资源可以明确依赖于其他资源。一旦依赖资源成功配置,Terraform将依次构建资源。

https://www.terraform.io/intro/getting-started/dependencies.html

对方回答是正确的字面意义,但总体来说这是一件避免。建立您的CM代码,以便它将继续重新尝试收敛,直到成功。特别是厨师,您可以使用chef-client cookbook来部署一个服务,该服务运行厨师在给定时间间隔内自动收敛(默认情况下为30分钟,但您可能希望缩短)。以“正确”顺序运行的东西听起来不错,但在处理拜占庭故障时,您会感谢您的过去的自我,以确保可靠的收敛,而不管顺序如何。