如何将相同的堆栈+配置部署到多台服务器?

Mat*_*rad 5 vps nginx puppet clonezilla cobbler

目前我有 2 个 VPS,设置和配置几乎完全像这样,还有一些其他小的 Nginx 配置。我都是手动完成的

我想获得一些其他 VPS 并部署完全相同的设置和配置,但我不确定要使用哪种工具。所有 VPS 都带有 root 访问权限和 SSH。

我在 ServerFault 上读过关于 Puppet、Cobbler 和 CloneZilla 等项目的文章,据我所知,Puppet 和 Cobbler 服务于不同的目的,但 CloneZilla 在哪里适合呢?我可以使用 CloneZilla 从一台服务器进行全新安装/设置克隆,部署到另一台服务器并使用 Puppet+Cobbler 来管理未来的更新等吗?

此外,您会给这些工具的第一次用户什么建议?

  • 每个 VPS 都位于不同的位置并为不同的网站提供服务(根本没有连接)
  • 精确设置 = LEMP+Varnish+WordPress [Munin+Nagios+Awstats]

Hop*_*00b 7

是的,您的建议是可能的,而且正是您将这些工具结合使用的目的。您可以使用 Clonezilla 或 Cobbler 来推出初始安装,并使用 Puppet 在安装后保持配置同步。(仅供参考,您没有提到的另一个流行的 Linux 配置管理器称为Chef。)

Clonezilla 不必在任何地方都适合它,尽管这是一个有点有趣的想法,但它可能会因为太少的图片价值而增加太多的复杂性。您最初可能希望使用一种工具来部署操作系统(ClonezillaCobbler),然后使用一种工具作为配置管理器(PuppetChef)。

  • 我可能会选择 Cobbler,因为 Clonezilla 主要用于同时部署大量客户端机器,而且您可能不想尝试通过 Internet 将块级硬盘操作系统映像推送到新的 VPS。

就一般性建议而言……好吧,我们在这里并没有真正这样做,因为它过于笼统和主观而不能很好地适应,所以我将只讨论很难出错的三件事。

  1. RTM。
    • 是的,请阅读这些工具的文档。两者都可以决定选择哪些,以及如何最好地使用您所使用的那些。

  2. 实践。
    • 经验是无可替代的,即使是阅读手册也不行。因此,一旦您阅读了文档,就去获得一些经验。
    • 上帝发明了测试环境,这样你的错误和“学习经验”就可以是私密的,而不是破坏生产环境。在推出任何实时或面向客户的东西之前,使用测试环境来试运行它并降低您的流程和配置。

  3. 计划一下。
    • 对于此类项目,做好初始映像或网络部署配置的正确工作至关重要。
      • 制作“黄金形象”并坚持该标准。如果您在部署新 VPS 时只是克隆一个生产系统,那么您将陷入一场噩梦。

如果您对它们是什么以及它们的用途不是很清楚,请参阅下面有关相关程序的简要说明以及指向其“关于”页面的链接。

克罗尼西拉

是一个镜像管理和部署程序。它允许您获取一台机器的磁盘映像,并将完全相同的映像部署到多台其他机器。它还具有一些选项来进行基本配置更改,并在推出图像后自动进行这些更改。(例如,可能不希望所有 500 台用户计算机都具有相同的主机名等基本内容。)

通常,它用于(至少在企业环境中)将相同的映像和配置部署到多台用户计算机,以便每个人都拥有相同的台式机/笔记本电脑映像并使帮助台更容易接受。

皮匠

是一个网络安装管理器和自动化工具。它将用于帮助自动化和标准化安装过程,就像 Clonezilla 一样。两者之间最重要的区别在于 Cobbler 将用于执行网络安装的命令标准化,而不是推出整个磁盘映像。

木偶

是一个配置管理套件。它用于在机器成像和设置在机器上创建和维护相同的配置。

厨师

与 Puppet 一样,这是一个配置管理套件。它用于在机器成像和设置在机器上创建和维护相同的配置。