【问题标题】:Methods of sending web-generated config files to servers and restarting services将 Web 生成的配置文件发送到服务器并重新启动服务的方法
【发布时间】:2010-05-28 19:46:30
【问题描述】:

我们正在编写一个基于 Web 的工具来配置我们由多个服务器提供的服务。这包括接口配置、dhcp 配置等。

在生成正确输出的数据库和视图中有配置,如何发送/使其可用于服务器?

我正在考虑通过 scp 发送它并通过 ssh 调用重新加载命令到服务。我也在考虑使用 Func 来完成所有工作,因为这是 Python 工具,并且似乎会与基于 python (django) 的配置工具集成。

还有其他建议吗?

【问题讨论】:

    标签: python linux administration func


    【解决方案1】:

    我尝试使用 Puppet 进行配置管理,主要是因为它周围的所有嗡嗡声。不幸的是,我发现(为时已晚)puppetmaster 的扩展性非常糟糕,并且不能很好地处理异构环境。它适用于数十台服务器,但其固有架构阻止了扩展。

    所以我切换到 Cfengine 3,你几乎没有注意到它对性能的任何影响,并且由于它的分布式架构而可以更好地扩展。此外,我后来发现 Puppet 只是在 Ruby 中低效地重新实现 Cfengine 2 的尝试。见http://verticalsysadmin.com/blog/uncategorized/relative-origins-of-cfengine-chef-and-puppet

    如果您的设置将用于一些有用的事情,而不仅仅是玩玩,请使用 Cfengine 3!

    【讨论】:

      【解决方案2】:

      你可以看看Fabric

      例如,这是我的一个备份脚本的摘录,它在远程主机上启动 Mercurial 服务器并将本地变更集推送到那里:

      from fabric.api import *
      env.hosts = ['login@my.host.com']
      
      def mybckp():
          run('cd ~/somedir; hg serve -a 111.222.111.222 -d') # start mercurial server in daemon mode
          local('hg push')  # push local changesets
      

      要执行它,我只需输入:

      fab mybckp
      

      基本上,Fabric 提供的是从 Python 脚本内部对另一个(远程)主机的 shell 进行简单方便的 SSH 访问。

      【讨论】:

      • 看起来很有希望,现在我要研究 Fabric 与 Func。
      【解决方案3】:

      我认为您正在寻找 PuppetForeman 来管理 puppet(创建服务器组)。

      有很多方法可以做到这一点,包括 Chef、Bcfg2、Capistrano 等。Puppet 现在拥有最大的“领先优势”。肯定有一个学习曲线,但结果是值得的。

      您可以将服务器配置文件保存在 puppet master 上(在版本控制中)。当你在 master 上部署最新的配置文件时,puppet 客户端可以自动拉取它们并重新启动服务。 Puppet“模板”可以为每个服务器动态生成配置文件。

      Puppet 为包(apt、yum)、文件和操作系统感知等内容提供“提供者”。

      【讨论】:

        【解决方案4】:

        这真的取决于你打算做什么,因为这个问题有点含糊。其他答案涵盖了可用的工具;选择其中一个归结为目的。

        您是否打算管理服务器以及这些服务器上的服务?如果是这样,请尝试 Puppet、CFEngine 或其他一些管理服务器配置的工具。

        或者,更具体地说,您是否正在寻找与服务器通信的部署/构建工具?这样您就可以输入类似于“mytool deploy myproject”的内容,并将您的项目传播到所有服务器?在这种情况下,织物将是使用的工具。

        一般来说,一个好的配置将同时包含这两者......但就其价值而言,从它的声音(管理 DHCP/网络/等)来看,Puppet 是要走的路。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-24
          • 1970-01-01
          • 2018-01-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多