Terraform - 我应该使用user_data或provisioner来引导资源吗?

时间:2017-06-05 21:35:47

标签: cloud devops provisioning terraform

似乎我可以使用带有模板文件的user_data或带有内联命令的“remote-exec”provisioner进行引导。那么哪一个被认为更惯用?

2 个答案:

答案 0 :(得分:14)

您应该使用user_datauser data字段是惯用的,因为它是AWS的原生字段,而remote-exec配置程序特定于Terraform,这只是调用AWS API的众多方法之一。

此外,用户数据可在AWS控制台中查看,并且通常是在AWS中使用Auto Scaling组的重要部分,您希望每个EC2实例在启动时执行相同的配置代码。使用Terraform的远程执行程序配置程序无法做到这一点。

答案 1 :(得分:3)

虽然我同意Josh,但如果实例没有运行时更改,您可以使用packer构建ami,然后在启动配置中使用它。这样您就不必等待用户数据运行。

Packer是Hashicorp系列工具的一部分

https://www.packer.io/docs/builders/amazon-ebs.html