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


20

您认为保持数十个(甚至数百个)debian服务器最新的最佳实践是什么?请记住:

  • 有服务器组(即,相同的Web服务器,DB服务器等)
  • 可能有几个Debian问题(lenny,etch)
  • 在所有服务器上运行循环并进行apt-get update &&升级是不可接受的(因为这是我目前正在做的事情:))这应该比这更好!

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

在此先感谢serverfault社区!


1
拥有一台本地服务器来存储最新数据包并将其用作apt存储库,这将节省带宽和时间,使用本地存储库将更新分发到本地服务器。哦,用aptitude代替apt-get。
Karolis T.

3
是的,是镜子,不是的。这些天没有好处。它甚至没有超级牛的力量。
David Pashley 09年

Answers:


12

我使用apt-dater来管理所有Debian Box的升级。似乎做得足够好了。尚未尝试将其扩展到数百个主机。


1
有趣的产品,尽管我从未听说过。
wzzrd

这很好 !如果apt-dater没有在每个主机上都安装本地软件包的话,我会推广这个答案。而且我不明白为什么甚至需要它。
法尔肯

经过测试,这个工具很棒!但是它适用于数十台服务器,而不是数百台。当处理很多机器时,它变得片状且缓慢...太糟糕了。
法肯(Falken)

1
我提倡这个答案是因为我最终设法使用了它,但是其他解决方案也相当不错,具体取决于您的偏好/环境!
法肯2009年

2
这是ubuntu上的默认ssh代理,导致所有错误。我只是删除了它,并使用了简单的“ ssh-add”。所有的缓慢消失了!
法肯


3

我们正在尝试使用puppet来升级非必需软件包上的安全修复程序。我们将运行apticron以电子邮件方式发送每个服务器的更新列表,然后每天运行一个脚本,将这些更新合并到一个manifest清单文件中,该which清单文件将提供每个发行版的软件包和版本。然后,这将更新单个服务器上的一堆文件,并在软件包需要升级时启动升级脚本。这工作得很好,但是我们没有像我想要的那样对它进行过多的测试。该方案确实解决了Puppet的局限性,即没有在多个位置定义相同的资源。

我也不喜欢对MySQL或PostgreSQL等东西进行自动升级,因为随机更新可能会在一天的中间关闭服务。这些仍然需要手动更新。

Spacewalk和Debmarshall看起来确实是我们人偶计划的合适替代品。


答案无可奉告,只是迟来的“ 10K快乐日”大喊大叫。
Evan Anderson,2009年

1

显然,Spacewalk现在已经为Debian提供了初步支持。也许与Puppet一起,这将是我的出发点。我敢肯定,为Spacewalk开发Debian支持的人一定会喜欢您与他一起将Debian支持提高到更高水平的。


1

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


1

可以通过func给出解决方案


我不会做功能。尽管我承认它确实显示出了希望,但它是未成熟的用于生产用途的方法
wzzrd

func由补鞋匠使用,它不是不成熟的恕我直言。RH专家对cobbler大量使用,而这些技术将包含在下一个RHEL版本中。也许它还没有“正式”投入生产,但实际上已经非常接近了。
drAlberT

0

我不确定您期望哪种类型的解决方案。您可能知道cron工作,但是由于需要人工干预,我不会盲目更新系统(这就是为什么他们付钱给您这样做,对吗?)

如果您拥有完全相同的系统,则可以考虑使用rsync之类的方法来引入差异,但是要弄清楚哪些文件不进行rsync可能会很困难,并且在服务运行时我不会这样做。至少将更新脚本设置为管理重启服务和合并配置文件差异。

也许如果您通过执行apt-get命令解释问题出在哪里,我们可以看到您想要避免的事情。

如果问题出在带宽和下载时间上,也许您应该设置一个盒子作为本地Debian存储库。关于如何做到这一点有Debian指南。

以下是一些有关如何最大程度地减少需要更新的内容的提示。

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

检查sources.list是否仅包含您真正需要的存储库。如果您尝试过一些存储库而忘记了它,那么您可能会带来不需要的更新。

如果您在生产服务器上盲目进行更新时遇到麻烦,请在有重大更新(4.0到5.0)时仔细阅读Debian升级指南。如果按照升级说明进行操作,这些操作将非常顺利。它不像运行apt-get dist-upgrade并走开那样容易。有时,在说明中甚至有关于何时运行智能而不是apt-get的指针-它们之间存在细微的差异。



-1

群集SSH。您登录到所有服务器并为它们提供完全相同的命令,因此您也可以对对话框做出反应。如果一台服务器还有其他问题,只需单击该服务器,它将是唯一可以响应的服务器。

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

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


如果您尝试做一些奇怪的事情(例如一次连接到50台计算机),SSH代理实际上就会死掉。否则,我喜欢ClusterSSH,尽管它需要另一个级别的分组。
LapTop006 2009年

-1

Cluster ssh是一个很好的建议。

debmarshal还不是debian的一部分-我什至不确定它是否将是一个软件包-似乎是一个完全不同的系统,带有专门的存储库。正如发言者所说,这目前对用户是敌对的,而不是用户友好的。

至少在Web界面中,Spacewalk似乎是Redhat Network的克隆。使用Redhat Network更新系统的结果很糟糕。一次,它没有任何明显的原因挂起,导致服务中断。之后我立即进行了yum更新,它处理得很好,所以我只能假设问题出在RHN方面。我不喜欢RHN更新的另一件事是您不知道更新何时发生,以观察问题。


-1不正确:除非您将它们自动更新,否则RHN更新不是自动的。除此之外:作为每天使用RHN的人,我还没有看到它对我不利。
09年

我并不是说RHN是自动的。但是,如果您确实从RHN设置了更新,则无法确定何时更新,所以感觉一样。您的运气显然并不能消除我的真实经历,因为它会导致用户无法获得服务。甚至yum更新都可能失败。任何认为您可以更新并退出的人都不小心或只是不担心,因为它不是生产服务器(生产=有依赖于服务的客户)。
labradort
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.