可以用镜像部署系统,为什么还要用Ansible

Why should I use Ansible if I can use image to deploy a system

我可以使用两种方法创建一个新系统,或者在失败时重新创建一个系统:

  1. 始终使用 Ansible 剧本部署系统。缺点是1)慢; 2) 并且部署可能会失败,因为应该从开源存储库下载的包有时 changed/removed。

  2. 临时启动一个新的 EC2 并使用 linux 命令部署 EC2(这比使用 Ansible 编写 infra-as-code 快得多);从 EC2 创建 AMI 映像;后来我们总是使用 AMI 来创建或重新创建系统。

我觉得 2. 更快更容易,那我们为什么还需要 Ansible(或 Chef/Puppet)?

好吧,我不知道为什么人们会对这个问题感到不安。我认为这是一个公平的问题。这是我的想法和我想指出的事情。欢迎在评论区讨论。

Ansible is slow

是的,我同意。如果您部署一个庞大而复杂的系统,Ansible 剧本很容易花费数十分钟甚至数小时 运行。

Ansible playbook may fail because the package which should be downloaded from open-source repository have been changed/removed sometimes

这个你不用太担心。这种情况很少发生。 Linux 包管理器每天都经常从这些开源库中提取。这从来都不是问题,更不用说这些回购协议维护得很好,不太可能发生这样的重大变化。所以我不认为这应该算作 Ansible 的缺点。

Managing AMIs is faster and easier

这只是在小范围内是正确的。如果您的环境中只有 serval 依赖项,那么在 IaC 中编写所有内容并在版本控制中维护它们可能不值得。然而,随着系统的增长,需要增加更多的复杂性。您会很快发现 IaC 方法很方便。它允许对基础架构的所有更改都记录在 SCM 中。它使不同的开发人员能够并行地在相同的基础设施上工作,等等。与在 AMI 中手动完成相比,我可能可以告诉你 IaC 的一千个优势。同样,这完全取决于您的规模。最好的方法是适合您需要的方法。

希望对您有所帮助。