如何将相同的堆栈+configuration部署到多个服务器?

目前我有2个VPS,设置和configuration几乎完全一样 ,有一些其他的小Nginxconfiguration。 我手动完成了这一切

我想得到几个其他的VPS和部署完全相同的设置和configuration,但我不知道使用哪个工具。 所有的VPS都有root访问和SSH。

我已经阅读了关于Puppet,Cobbler和CloneZilla等项目的ServerFault,据我所知,Puppet和Cobbler服务于不同的目的,但是CloneZilla在这方面做得怎样? 我可以从一台服务器克隆使用CloneZilla的全新安装/设置,部署到另一台服务器,并使用Puppet + Cobblerpipe理未来的更新等?

你也会给第一次使用这些工具的build议吗?

  • 每个VPS位于不同的位置,并提供不同的网站(根本不连接)
  • 精确设置= LEMP +清漆+ WordPress [Munin + Nagios + Awstats]

    是的,你提出的build议是可能的,而且正是你将这些工具组合使用。 您将使用Clonezilla或Cobbler推出最初的安装,并且Puppet在安装后保持configuration同步。 (和FYI一样, 另一个你没有提到的Linuxconfigurationpipe理器叫Chef 。)

    Clonezilla并不需要适应任何地方,虽然这是一个有点有趣的想法,但它可能会增加太多的复杂性,太less的价值的图片。 您最初可能需要使用一种工具来部署操作系统(Clonezilla Cobbler),然后使用一个工具作为您的configurationpipe理器(Puppet Chef)。

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

    就一般的build议而言……好吧,我们在这里并没有真正这样做,因为过于粗俗和主观是一个不错的select,所以我只想去解决这三个难以解决的问题。

    1. RTM。
      • 是的,阅读这些工具的文档。 既要决定哪一个要解决,又要如何最好地使用你所要做的。
    2. 实践。
      • 没有经验的替代品,甚至没有阅读手册。 所以一旦你阅读了文档,去获得一些经验。
      • 上帝发明了testing环境,所以你的麻烦和“学习经验”可能是私人的,而不是降低生产环境。 使用testing环境来干运行,并在推出任何活的或面向客户的产品之前,降低您的stream程和configuration。
    3. 计划一下。
      • 有了这样的项目,关键是要做好正确的初始映像或networking部署configuration。
        • 做一个“黄金形象”,坚持这个标准。 如果在部署新的VPS时只克隆其中一个生产系统,就会让自己陷入噩梦。

    如果你不清楚自己是什么以及他们用的是什么,那么请看下面有关这些程序的简要描述,以及指向他们“关于”页面的链接。

    Clonezilla的

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

    通常情况下,(至less在企业环境中)使用它来将相同的映像和configuration部署到多个用户计算机上,以便每个人都拥有相同的台式机/笔记本电脑映像,并使服务台更容易一些。

    皮匠

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

    木偶

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

    厨师

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

    您也可以考虑(R)?易于学习,有助于configurationpipe理和软件部署。 他的节点上需要SSH或HTTP。

    你的链接指向你的博客,而不是服务器规格…等,如果你已经有服务器,你想移植到木偶/厨师我build议蓝图 – 这是一个Python工具

     pip install blueprint blueprint create -P myserver # this does puppet manifests blueprint create -C myserver # this does chef