我应该使用user_data还是Ansible配置我的EC2

时间:2017-12-20 17:37:52

标签: linux ansible terraform

当使用Terraform(或云形成)启动EC2时,我们可以通过在user_data / remote-exec中放置一些脚本来配置EC2。或者,我们可以使用Ansible / Chef等配置EC2。在user_data / remote-exec中配置EC2和使用Ansible / Chef执行此操作有什么区别?何时使用前者,何时使用后者(我知道Ansible / Chef是幂等的)?

在我的情况下,EC2最初是手动启动的,然后使用很多linux命令手动配置。并且我没有配置命令。现在我是使用terraform自动化整个结构并配置EC2的人。使用user_data / remote-exec配置EC2非常简单。我只需要在一些脚本中放置所有现有的linux命令,只需稍加改动即可。如果使用我的脚本的配置结果不成功,至少我可以通过比较我的脚本和原始的linux命令来快速弄清楚我是否错过了一些命令。但如果我使用ansible / chef,我必须使用不同的语言重写所有步骤。如果配置不符合预期,我很难弄清楚哪些步骤不正确,因为ansible / chef和linux命令的语法完全不同。

我的问题是,在我的情况下,我应该使用ansible / chef或user_data / remote-exec进行配置吗?

1 个答案:

答案 0 :(得分:1)

用户数据适用于系统的初始配置。如果您需要长期维护,Ansible / Chef / Salt / Puppet等配置管理软件是一个很好的选择。

Packer可用于不可变基础架构,即在创建后不会更改。您可以在系统上运行所有脚本和安装,以便准备好进行启动,这也更快,因为您不必等待用户数据运行。

您还需要提出一些问题,您经常要修补这些问题吗?您是要更新现有还是替换为new。 Ansible非常适合配置,因为它只是yaml文件

Blue/Green deployments通常会将服务器替换为所有新服务器,并逐渐将流量转移到新服务器上。

Some more things to consider with your Infrastructure as code