使用 puppet、chef 或 ansible 的目的

Aim of using puppet, chef or ansible

我看了很多关于配置管理的文章,但是我不太明白这个配置是用来做什么的。

是软件本身吗?比如,更改 conf 文件中的主机等... ?

或者在应用程序上 "host"?既然如此,知道我们一般使用docker容器"ready to use",用这种软件的目的是什么?

您花了几个小时设置该服务器、配置每个变量、安装每个包、更新配置文件。您非常喜欢该服务器,因此将其命名为 'Lucy'。 明天你 运行 乘公共汽车过来。您的同事会知道您对该服务器所做的每一个微小的更改吗?不太可能。他们将不得不花费数小时深入研究该服务器,试图弄清楚你做了什么以及为什么这样做。

现在让我们将其乘以 100 台甚至 1000 台服务器。手动执行此操作是不可行的。

这就是配置管理系统的用武之地。

  • 它允许您根据配置管理系统本身的性质获得系统配置的文档。 Playbooks/manifests/recipes/'whatever term they use'将是您服务器的权威描述。 readme.txt 可能并不总是与现实世界相匹配,这些系统可确保您所见即所得。
  • 将此服务器配置反复复制到潜在的无限规模将相对简单(Google,Facebook、Microsoft 和其他所有大公司都以这种方式工作)。

您可能会想到一种 "Golden image" 方法,配置所有内容,然后拍摄快照并不断复制它。问题是很难比较 2 个这样的图像之间的差异。你只有二进制 blob。与大多数配置管理系统一样,您可以使用传统的 VCS 并轻松区分各种版本。

同样的原则也适用于容器。

不要把你的服务器当成宠物,把它们当成牛。