配置管理工具在不变的基础架构中扮演什么角色?


12

如果我使用不可变的服务器/容器,是否需要诸如Chef,Puppet,Ansible或Salt之类的工具?这些配置管理工具旨在建立配置然后进行维护。

如果要部署不可变服务器,是否应仅将配置管理工具用于初始配置?

Answers:


12

有一些答案:

  1. 需要构建那些不变的图像。当从已知的起始状态开始时,使用老式的过程脚本来构建某些东西当然会更容易,但是随着时间的流逝它仍然变得非常笨拙(例如Dockerfiles),尤其是当您最终想要一大堆不同的图像用于Packer和其他图像构建工具可以与Chef,Ansible,Puppet,Salt等完美集成。

  2. 不变性是一个频谱,而不是二进制。即使在“非常不可变”的部署中,也有一些需要运行时管理的配置文件并不少见。这也是可以使用CAPS工具的地方,尽管轻量级的选项(例如Consul Templates或etcd)可能更有意义,具体取决于整体下文。如果您使用的是不可变的应用程序服务器,但传统上是使用Chef来管理数据库服务器,那么即使在不可变的方面对较小的管理任务也可以使用Chef。

  3. 零日管理。不变性很好,但是当下一个OpenSSL 0day掉线时您将怎么办?如果您的构建管道可以创建立即的修补程序映像并进行部署,那很好。但是许多人可能没有这种快速转向能力。

  4. 不可改变的事物。无法回答,但整个基础很少是100%不可变的。诸如数据库服务器和开发人员工作站之类的东西(是的,这些是您的基础设施的一部分)在使不可变变得困难和不可能之间处于某个位置。


您对“许多人”做出了很多假设。那些无法为其不可变基础架构生成图像的人,很可能没有一开始就不可变的基础架构。
Evgeny

“可以使用不可变的容器进行部署”与“即使正在进行其他部署也可以在6小时内重建并重新部署每个容器”之间存在很大的差距。
coderanger

以我的经验,当您有6小时的空白时,您将无法拥有不变的基础架构。具有不可变的服务器和快速构建不可变的服务器不是相同的功能,但是它们紧密相关。
Evgeny

许多说“我们运行不可变容器”的人不在这一类别中。因此,指出这是一个要解决的问题,这是问题的全部重点。
coderanger

您可以将“ immutable”定义为“没有一个SSH并进行手动更改”,因为它并不意味着完全不变,因为它们在正常操作期间会自行更改。甚至编写一个pidfile都是一个突变。
Gaius

0

我认为,绝对不变的环境是一个坏主意。

诸如Ansible,Chef,Puppet之类的CM工具在很多情况下都非常有用,包括您在内。

我正在使用ansible在GCP中进行VM实例的初始配置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.