在数百台Debian服务器上pipe理升级

你认为最好的做法是维护数十个(如果不是数百个)debian服务器是最新的? 请记住:

  • 有一组服务器(即相同的Web服务器,数据库服务器,…)
  • 可以有几个Debian的问题(lenny,etch)
  • 在所有服务器上运行一个循环,并执行apt-get update && upgrade是不可接受的(因为这就是我现在正在做的:))应该比这更好!

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

在此先感谢serverfault社区!

我使用apt-dater来pipe理升级我所有的Debian盒子。 似乎足够好的技巧。 尽pipe如此,还没有试图扩展到数百个主机。

Google用debmarshal解决了这个问题:

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

通过它,您可以批准上游存储库中的软件包在生产主机上进行安装。

那么你可以在全自动模式下运行cron-apt。

这是一个介绍video:

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

我们正在使用木偶来升级非必要软件包的安全修补程序。 我们将运行apticron通过电子邮件发送每个服务器的更新列表,然后每天运行一个脚本,将这些更新合并到一个puppet清单文件中,该文件给出了每个发行版的包和版本。 然后这将更新单个服务器上的一堆文件,并在包需要升级时启动升级脚本。 这个工作很合理,但是我们还没有像我想的那样testing。 这个scheme确实避免了在多个地方没有定义相同资源的Puppet的局限性。

我也不习惯像MySQL或PostgreSQL这样的自动升级,随机升级会closures服务,可能在一天中。 这些仍然需要手动更新。

太空行走和Debmarshall看起来像我们的木偶计划的合适的替代品。

显然, Spacewalk现在已经初步支持Debian。 那可能和Puppet一起是我的出发点。 我很确定那个开发Debian支持Spacewalk的人会喜欢你和他一起将Debian支持提升到更高的水平。

在像Puppet这样基于拉式的configuration系统中,也有bcfg2和cfengine。 这些或那些可能适合您的需求。 我现在在我的实验室里推出bcfg2。

一个解决scheme可以由func给出

我不确定你期待什么types的解决scheme。 你可能知道cron工作,但我不会更新盲人系统,因为需要人工干预(这就是为什么他们付钱给你这样做的权利?)

如果你有完全相同的系统,你可能会考虑使用像rsync这样的东西来区分不同的情况,但是搞清楚哪些文件不是rsync可能比较困难,而且我不会在服务运行的时候这么做。 至less将更新脚本设置为pipe理重新启动服务和合并configuration文件差异。

也许如果你解释一下apt-get命令的问题,我们可以看到你想避免的。

如果问题是带宽和时间下载,也许你应该设置一个盒子作为你当地的Debian仓库。 有关于如何做到这一点的Debian指南。

这里有一些关于如何最小化你需要更新的东西的提示。

当你安装Debian时,除非你确实需要在该控制台上使用X,否则不要安装Desktop。 大多数服务器不需要安装X. 这可以显着减less系统上的软件包数量,然后不需要更新任何数量的软件包。

检查sources.list是否仅包含您真正需要的存储库。 如果您已经尝试了一些存储库并忘记了这一点,那么您可能正在引入不需要或不需要的更新。

如果您在生产服务器上盲目地执行更新时遇到了麻烦,请注意在出现主要更新(4.0到5.0)时参阅Debian升级指南。 如果您按照升级说明进行操作,这些将会非常顺利。 这并不像运行apt-get dist-upgrade和走开一样简单。 有时候在指令中甚至有关于什么时候运行aptitude而不是apt-get的指针 – 它们之间的差别很小。

你现在这个工具“舞者的shell”吗? 我喜欢它,我使用它。 但是我不知道你是否可以用这么多主机。 也许你可以试试…

http://www.netfort.gr.jp/~dancer/software/dsh.html.en

他在存储库中。

ClusterSSH。 你login到所有的服务器,并给他们完全相同的命令,所以你也可以对这个对话做出反应。 如果一个服务器得到一个额外的问题,只需点击一个,这将是唯一的答复。

我用它来将25个Web服务器从etch升级到lenny。 像魅力一样工作。

http://sourceforge.net/projects/clusterssh/

群集SSH是一个很好的build议。

debmarshal不是debian的一部分,但我甚至不确定它会是一个软件包 – 似乎是一个完全不同的系统,并有一个专门的存储库。 正如发言者所说,这是目前用户敌意,不友好的用户。

至less在networking界面中,太空漫步似乎是Redhat Network的一个克隆。 我使用Redhat Network更新系统的结果很糟糕。 有一次它挂了,没有任何理由,导致服务中断。 我之后立刻做了一个yum更新,它处理得很好,所以我只能假设问题来自于RHN方面的问题。 另一件我不喜欢的RHN更新是你不知道更新什么时候会发生,以观察问题。