使用 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 并轻松区分各种版本。
同样的原则也适用于容器。
不要把你的服务器当成宠物,把它们当成牛。
我看了很多关于配置管理的文章,但是我不太明白这个配置是用来做什么的。
是软件本身吗?比如,更改 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 并轻松区分各种版本。
同样的原则也适用于容器。
不要把你的服务器当成宠物,把它们当成牛。