当使用Terraform(或cloud formation)启动EC2时,我们可以通过在user_data/remote exec中放置一些脚本来配置EC2。或者,我们可以使用ansibe/Chef等配置EC2。在user_data/remote exec中配置EC2与使用ansibe/Chef配置EC2有什么区别?何时使用前者,何时使用后者(我知道Ansible/Chef是等幂的)?
在我的例子中,EC2最初是手动启动的,然后使用许多linux命令手动配置。命令不是我配置的。现在我是使用terraform自动化整个结构并配置EC2的人,使用user_data/remote exec配置EC2很简单。我只需要把一些现有的Linux命令放到一些脚本中,稍作改动。如果使用我的脚本的配置结果不成功,至少我可以通过比较我的脚本和原始的linux命令来快速判断是否遗漏了一些命令。但是如果我使用ansible/chef,我必须用不同的语言重写所有步骤。如果配置不是预期的,我很难找出哪些步骤不正确,因为ansibe/chef和linux命令的语法完全不同。
我的问题是,在我的例子中,我应该使用ansible/chef还是user_data/remote exec进行配置?

最佳答案

用户数据有利于系统的初始配置。如果您需要长期维护,那么像ansibe/Chef/Salt/Puppet这样的配置管理软件是一个不错的选择。
Packer可用于不可变的基础设施,即在创建后不会更改。您可以运行所有脚本并将其安装在系统上,以便它准备好启动,这也更快,因为您不必等待用户数据运行。
你还需要问几个问题,你打算多久修补一次?您是否要更新现有的或用新的替换。Ansible非常适合配置,因为它只是yaml文件
Blue/Green deployments通常用所有新服务器替换服务器,并逐渐将流量转移到新服务器。
Some more things to consider with your Infrastructure as code

关于linux - 我应该使用user_data还是Ansible配置EC2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47911547/

10-11 22:33
查看更多