【问题标题】:should I configure my EC2 using user_data or Ansible我应该使用 user_data 还是 Ansible 配置我的 EC2
【发布时间】:2018-06-03 08:08:18
【问题描述】:

当使用 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 进行配置?

【问题讨论】:

    标签: linux ansible terraform


    【解决方案1】:

    用户数据有利于系统的初始配置。如果您需要长期维护,像 Ansible/Chef/Salt/Puppet 这样的配置管理软件是一个不错的选择。

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

    您还必须问几个问题,您打算多久修补一次?您是要更新现有的还是替换为新的。 Ansible 非常适合配置,因为它只是 yaml 文件和

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

    Some more things to consider with your Infrastructure as code

    【讨论】:

    • 嗨,strongjz。我想我需要使用 chef/ansible 等,因为配置需要稍后更新。谢谢。
    • 使用 Ansible/chef 的一个问题是我是一名负责基础设施即代码的开发运维人员。我没有设计手动配置命令。但似乎我必须熟悉这些命令才能将它们重写为 ansible 代码。总是这样吗?
    • 我会尝试了解流程并相应地实施,如果不可能,您可以随时使用相应的命令模块docs.ansible.com/ansible/latest/command_module.htmldocs.ansible.com/ansible/latest/win_command_module.html
    猜你喜欢
    • 2017-11-06
    • 1970-01-01
    • 2020-05-18
    • 2016-07-07
    • 2013-04-10
    • 2018-09-05
    • 1970-01-01
    • 2018-04-10
    • 2015-10-16
    相关资源
    最近更新 更多