Terraform template_file和cloud-init

时间:2016-07-21 17:35:46

标签: amazon-ec2 bootstrapping terraform

我开始使用Terraform来启动AWS EC2机器。我在网上看到一些资源指向template_file resources的使用,我不确定与cloudinit相比它真正做了什么。

根据我的理解, cloud-init 用于引导,您可以将本地计算机上的多个脚本加载到EC2实例上的/var/lib/instance/scripts目录中,它们将自动运行使用你指定的任何翻译。那么,我们需要在template_file中呈现什么?

另外,我遇​​到的另一个问题是我们只允许将bash脚本作为cloud-init的一部分运行,还是允许使用python解释器?

1 个答案:

答案 0 :(得分:1)

template_file在您想要使用Terraform配置中的其他资源的值渲染bash脚本并在启动EC2实例时将其作为用户数据传递时非常方便。只允许shell脚本和cloud-init指令,如下所示:

  

在Amazon EC2中启动实例时,您可以选择将用户数据传递给可用于执行常见自动配置任务的实例,甚至可以在实例启动后运行脚本。您可以将两种类型的用户数据传递给Amazon EC2:shell脚本和cloud-init指令。您还可以将此数据作为纯文本传递到启动向导中,作为文件传递(这对于通过命令行工具启动实例非常有用),或者作为base64编码文本(用于API调用)。

更多信息:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html