管理数百台 Debian 服务器上的升级

管理数百台 Debian 服务器上的升级

您认为维护数十个(甚至数百个) Debian 服务器的最佳实践是什么?请记住:

  • 有几组服务器(即相同的网络服务器、数据库服务器……)
  • 可能存在多个 Debian 问题(lenny、etch)
  • 在所有服务器上运行循环并执行 apt-get update && upgrade 是不可接受的(因为这是我目前正在做的事情:))它应该比这更好!

目前,当我最终完成所有升级时,会发布一个新的安全更新,我必须重新做一遍。

提前感谢 serverfault 社区!

答案1

我用apt-dater管理升级我的所有 Debian 机器。似乎效果不错。不过还没有尝试将其扩展到数百台主机。

答案2

Google 使用 debmarshal 解决了这个问题:

http://code.google.com/p/debmarshal/

这使您可以批准来自上游存储库的软件包以便在生产主机上安装。

然后您就可以在全自动模式下运行 cron-apt。

以下是介绍视频:

http://www.youtube.com/watch?v=L3hRToC23mQ

答案3

我们正在尝试使用 puppet 来升级非必要软件包的安全修复程序。我们会运行 apticron 来通过电子邮件发送每台服务器的更新列表,然后每天运行一个脚本,将这些更新合并到 puppet 清单文件中,该文件提供了每个发行版的软件包和版本。然后,这将更新各个服务器上的一堆文件,并在软件包需要升级时启动升级脚本。这种方法效果不错,但我们还没有像我希望的那样进行充分的测试。这种方案确实绕过了 Puppet 无法在多个地方定义相同资源的限制。

我也不太习惯对 MySQL 或 PostgreSQL 等软件进行自动升级,因为随机更新可能会在中午关闭服务。这些软件仍然需要手动更新。

Spacewalk 和 Debmarshall 看起来确实是我们傀儡计划的合适替代方案。

答案4

在基于拉取的配置系统(如 Puppet)方面,还有 bcfg2 和 cfengine。其中一个可能适合您的需求。我现在正在实验室中推出 bcfg2。

相关内容