使用AWS CloudFormation UserData与Ansible进行配置之间的区别是什么?AWS CloudFormation配置... UserData与Ansible或类似的?
我知道,就Puppet而言,即使在更改完成(将其更改回以反映清单)时,它也会强制执行配置规则。
但是有更多值得考虑的差异吗?
使用AWS CloudFormation UserData与Ansible进行配置之间的区别是什么?AWS CloudFormation配置... UserData与Ansible或类似的?
我知道,就Puppet而言,即使在更改完成(将其更改回以反映清单)时,它也会强制执行配置规则。
但是有更多值得考虑的差异吗?
为了说明,“UserData”是EC2实例的一部分,而不是CloudFormation本身的一部分。可以使用User Data启动EC2实例,AMI可以使用该实例在启动时执行动态操作。如果使用CloudFormation启动EC2实例,则可以通过在AWS::EC2::Instance
资源上设置UserData
属性将用户数据提供给EC2实例。
通常情况下,用户数据由Cloud-Init
处理,通常格式为简单的User-Data Script,它只是一个在实例首次启动时被调用的shell脚本。
这就是说,'壳牌脚本与Ansible'是一个苹果与橙子的比较。 Ansible是否适合您的使用情况取决于您是否需要使用内置于Ansible中的额外抽象层与标准外壳脚本之间的配置来配置实例所需的内容。阅读Ansible Documentation并自行决定。
值得一提的是,除了运行Ansible以通过SSH配置您的实例的正常“推送”方法之外,您还可以使用用户数据脚本以反转'Ansible-pull'模式运行Ansible,以执行在EC2实例上进行初始'引导'安装。
简短的回答是:使用CloudFormation或Terraform
Ansible是许多不同势目的的配置同治工具。对许多其他工具来说,最显着的区别是,它工作在推送模式下,因此远程服务器上没有代理程序轮询更改。 它是关于安装软件包,创建文件等等。
CloudFormation被设计为创建AWS环境。如果你使用亚马逊而没有其他的东西,这很好。
Ansible可以完成这项工作,但我建议使用CloudFormation或Terraform之类的工具。 Ansible模块对此没有问题,但像Terraform这样的工具在创建环境方面拥有一定的优势,而且在做这项工作时他们更聪明。
谢谢,我明天再看看。 –
这是一个体面的答案,但Ansible只是其次的配置管理。这里的重点是基础设施供应。 –