如何在多台计算机上有效地管理apt?


11

我使用p管理大约30台Ubuntu服务器。我已经看到许多关于cron-apt和apticron的信息,这些信息可以使它们的软件包保持最新状态,但是我一直无法找到一种集中管理进程的方法。使用cront-apt / apticron,我仍然需要登录到每个主机并运行aptitude update以执行更新。每当更新核心软件包时,更不用说来自所有30台计算机的审阅通知。

一定有更好的方法。有什么建议?

Answers:


3

您可能会对景观感兴趣。这是用于管理大型Ubuntu部署的“官方”管理工具,Canonical可能非常希望获得使用它的收益。

重新编辑:

首先,免责声明;我没有为Debian或Ubuntu使用镜像,所以我对软件不熟悉。

其次,很抱歉,apt-mirror解决方案“太繁琐”。最初的想法是,您将有一台单独的测试机(或测试环境,可能是虚拟机?)来部署更新。对更新的性能感到满意后,您可以将包拉入/放入“部署”镜像(官方来源中的本地镜像,以及仅用于您要部署的更新的辅助镜像)。然后,远程计算机将在预设时间运行更新,并将其从“部署”镜像拉到每台计算机上,这是一项cron作业,包括:

apt-get update && apt-get upgrade --quiet --assume-yes

不幸的是,当我开始阅读所有细节时,似乎apt-mirror会拉动各种各样的东西,而不仅仅是您需要的软件包。因此,尽管该概念有一些优点,但我将放弃该想法。


景观看起来很有趣。我将不得不仔细研究一下。我尚不清楚运行本地apt镜像(当前正在执行)如何帮助我批准/查看待处理的更新。你能澄清一下吗?
Insyte,2009年

14

一位同事发现并简短地研究了apt-dater,它是“基于终端的远程软件包更新管理器”。

您使用基于curses的界面来管理所有主机或主机组等上的更新。支持完整apt会话的日志记录,包括可能遇到的任何错误等。

在受管机器上依赖ssh和sudo。

参见http://www.ibh.de/apt-dater/

我自己还没有使用过它,所以我不能认可它,但这听起来很接近您的期望。


这看起来很有希望。Insyte,我将自己推荐这个答案。尽管您可以执行我描述的所有步骤,但您是否真的想在此上花费时间,何时可以快速进行设置并开始生活呢?@ Jeff,+ 1是个不错的建议。
艾利·佩恩

4

由于您已经在使用Puppet,因此最简单的方法(也是进行变更控制/跟踪的最佳方法)是指定要安装在Puppet清单中的软件包的所需版本。您会密切注意安全公告列表,当您使用某些安全公告时,只需更新Puppet即可说“安装此软件包的新版本”。假设您对清单使用了修订控制,那么您便知道何时更改了“策略”,Puppet的报告将准确显示更改的实际时间(因此您可以轻松地将其与以后的日志事件相关联)。


这几乎就是我们要做的。我们不使用puppet软件包类型,因为那样会导致每个服务器安装每个软件包。相反,我们在服务器上写了一个文件包名称和版本,然后使用脚本来运行它们,并检查它们是否已安装,然后尝试安装它们。第二部分是一个脚本,该脚本读取带有apticron电子邮件的我的邮件文件夹,并获取所有需要更新并重写清单文件的软件包。我们尚不确定此方法的效果如何。
大卫·帕什利

2
为什么Puppet软件包类型会在每台计算机上安装所有软件包?您将每个软件包的节放入相关的类或已定义的类型中,因此只能将其安装在适当的机器上。如果要将版本列表集中到一个文件中,请拥有大量虚拟资源,然后在必要时实现它们。
womble


1

以前没有真正考虑过,我的第一个想法将是与avery所建议的类似,特别是如果您已经有了测试环境。

基本上,您将生产计算机设置为从您自己的本地存储库自动升级,并且只有在将测试环境升级到最新版本后,才能更新此存储库。

Apticron的伸缩性不好,它的设计目的是在非常小的环境中运行,但它确实有一些好处:

  • 它不仅向您发送列表,还向您发送要升级的软件包的变更日志。
  • 要获取更改日志,它会下载软件包,因此,升级时不必等待它们下载。

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.