回答

0

为了说明,“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实例上进行初始'引导'安装。

0

简短的回答是:使用CloudFormation或Terraform

Ansible是许多不同势目的的配置同治工具。对许多其他工具来说,最显着的区别是,它工作在推送模式下,因此远程服务器上没有代理程序轮询更改。 它是关于安装软件包,创建文件等等。

CloudFormation被设计为创建AWS环境。如果你使用亚马逊而没有其他的东西,这很好。

Ansible可以完成这项工作,但我建议使用CloudFormation或Terraform之类的工具。 Ansible模块对此没有问题,但像Terraform这样的工具在创建环境方面拥有一定的优势,而且在做这项工作时他们更聪明。

+0

谢谢,我明天再看看。 –

+0

这是一个体面的答案,但Ansible只是其次的配置管理。这里的重点是基础设施供应。 –

相关问题