你认为最好的做法是维护数十个(如果不是数百个)debian服务器是最新的? 请记住:
目前,当我最终完成所有升级时,发布了一个新的安全更新,我必须重新完成。
在此先感谢serverfault社区!
我使用apt-dater来pipe理升级我所有的Debian盒子。 似乎足够好的技巧。 尽pipe如此,还没有试图扩展到数百个主机。
Google用debmarshal解决了这个问题:
http://code.google.com/p/debmarshal/
通过它,您可以批准上游存储库中的软件包在生产主机上进行安装。
那么你可以在全自动模式下运行cron-apt。
这是一个介绍video:
我们正在使用木偶来升级非必要软件包的安全修补程序。 我们将运行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。 像魅力一样工作。
群集SSH是一个很好的build议。
debmarshal不是debian的一部分,但我甚至不确定它会是一个软件包 – 似乎是一个完全不同的系统,并有一个专门的存储库。 正如发言者所说,这是目前用户敌意,不友好的用户。
至less在networking界面中,太空漫步似乎是Redhat Network的一个克隆。 我使用Redhat Network更新系统的结果很糟糕。 有一次它挂了,没有任何理由,导致服务中断。 我之后立刻做了一个yum更新,它处理得很好,所以我只能假设问题来自于RHN方面的问题。 另一件我不喜欢的RHN更新是你不知道更新什么时候会发生,以观察问题。