如何在 ansible 和已经存在的 ec2 中使用自动缩放

How to use auto scaling with ansible and already existed ec2

我有 amazon ec2 实例,我用 Ansible 配置它并且工作正常。

现在我想把它作为自动缩放组的一部分,这样我就可以根据需要缩放它们。

但我的问题是我没有任何设置实例的启动配置。我用 Ansible 做所有事情。

如何配置自动缩放,在创建新实例后由 ansible 配置。

根据我的经验,您可以采用两种方法。

从已由 ansible 完全配置的实例创建 AMI。然后在您的启动配置中使用此 AMI。

另一种选择是使用库存 AMI,并对自动缩放组使用 cloud-init 启动的每个新主机进行可靠配置。

在我看来,与第一种方法相比,第二种方法在很多方面都欠缺。当 ansible 每次都需要 运行 时,扩展可能需要更长的时间。您还冒着在供应期间出现问题的风险,阻止实例加入组,从而导致进一步的延迟。您还 运行 实例之间存在漂移的风险(取决于您让 ansible 做什么以及自动缩放事件之间是否有任何外部变化)。

如果您决定为您的 ASG 创建一个完全配置的 AMI,您可以从您已经创建的实例中手动创建。但是,如果您希望定期重建图像,您可能需要研究像 packer 这样的工具来帮助您以自动方式创建图像。

这是我自己的脚本,运行良好。

https://github.com/kernelv5/AWS_Automation/tree/master/AutoScaling/AutoScalingAMIUpdate