Answers:
您可能会对景观感兴趣。这是用于管理大型Ubuntu部署的“官方”管理工具,Canonical可能非常希望获得使用它的收益。
重新编辑:
首先,免责声明;我没有为Debian或Ubuntu使用镜像,所以我对软件不熟悉。
其次,很抱歉,apt-mirror解决方案“太繁琐”。最初的想法是,您将有一台单独的测试机(或测试环境,可能是虚拟机?)来部署更新。对更新的性能感到满意后,您可以将包拉入/放入“部署”镜像(官方来源中的本地镜像,以及仅用于您要部署的更新的辅助镜像)。然后,远程计算机将在预设时间运行更新,并将其从“部署”镜像拉到每台计算机上,这是一项cron作业,包括:
apt-get update && apt-get upgrade --quiet --assume-yes
不幸的是,当我开始阅读所有细节时,似乎apt-mirror
会拉动各种各样的东西,而不仅仅是您需要的软件包。因此,尽管该概念有一些优点,但我将放弃该想法。
一位同事发现并简短地研究了apt-dater,它是“基于终端的远程软件包更新管理器”。
您使用基于curses的界面来管理所有主机或主机组等上的更新。支持完整apt会话的日志记录,包括可能遇到的任何错误等。
在受管机器上依赖ssh和sudo。
参见http://www.ibh.de/apt-dater/
我自己还没有使用过它,所以我不能认可它,但这听起来很接近您的期望。
由于您已经在使用Puppet,因此最简单的方法(也是进行变更控制/跟踪的最佳方法)是指定要安装在Puppet清单中的软件包的所需版本。您会密切注意安全公告列表,当您使用某些安全公告时,只需更新Puppet即可说“安装此软件包的新版本”。假设您对清单使用了修订控制,那么您便知道何时更改了“策略”,Puppet的报告将准确显示更改的实际时间(因此您可以轻松地将其与以后的日志事件相关联)。
看看clusterssh(apt-get install clusterssh):
$ cssh server1 server2 server3 ...
有时,我之前写了一个低级别/肮脏的自动化Fabric脚本(fabfile)来满足类似的要求,您可以在以下位置进行检查: