在基于Linux / Debian的系统上, cron-apt是一个非常方便的工具,可以通过cronpipe理自动化apt。
我使用它来apt-get update
每天apt-get update
,并发送给我一个电子邮件,如果新的更新必须安装。
这个工具简短而且做得很好 。
关于你的第三个问题:我总是运行一个本地存储库。 即使只有一台机器,也可以节省时间以防万一需要重新安装(我通常使用aptitude autoclean等),对于两台机器,它几乎总是有回报的。
对于我pipe理的集群,我通常不保留明确的日志:我让包pipe理器为我做。 但是,对于那些机器(而不是桌面),我不使用自动安装,所以我有我的笔记,关于我打算安装到所有机器。
类似于cron-apt,我使用apticron 。
我用历史的apt- history。 我不知道为什么这个有用的工具默认不包含,这是我用puppet部署的第一个包。
我每晚运行/ usr / bin / apt-get update -qq; / usr / bin / apt-get dist-upgrade -duyq作为cron作业。 在早上,我已经通知哪些软件包需要升级,并且文件已经被下载到机器上。
然后,我通常会拍摄机器的快照(大多数服务器都是虚拟的),进行apt-get dist-upgrade ,检查nagios并确保一切正常,并删除快照。
最后,我将保存一个对维基上每个服务器的所有更改的运行列表,以便跟踪后面出现的任何问题。
至于限制多余的下载,我知道你可以在你的服务器和互联网之间build立一个cachingweb代理 (squid?),它会在第一次访问时caching.deb文件。 也许这比设置一个本地软件包库更简单 – 而且还有加快一般网页浏览的好处。
apt-cacher对于caching包来说非常方便,它会在第一次需要caching时caching,而不是完成整个库的完整镜像,从而节省磁盘和带宽。 这也很方便,因为它将包的第一个请求直接传送给请求者,同时caching它,所以没有额外的延迟。
运行本地存储库是正确pipe理本地服务器上的最佳方式。 它还使您可以轻松地部署自定义backports或自定义本地软件包。 我已经知道制作本地“元软件包”只是一个巨大的依赖关系,使本地安装容易。 (例如'apt-get install local-mailserver')。 这有一个副作用,也让你'版本'你的configuration更改。 (对于更复杂的configurationpipe理,你需要像Puppet)
对于我们的Windows系统,我们有一个本地的WSUS服务器和一个标准的窗口来应用每月的补丁。 对于Linux系统(RHEL),我们在校园里有一台RHN卫星服务器,它们都连接在一起。 这为您pipe理的每个连接系统提供了一个很好的仪表板,以及每个系统的未应用更新。 对于那些傀儡的人,我们推出一个脚本,在一个普通的窗口中自动应用补丁,并发送一个电子邮件通知和结果。
您可以拥有本地存储库并将所有服务器configuration为指向更新。 您不仅可以获得本地下载的速度,还可以控制要在基础架构上安装哪些官方更新,以防止出现任何兼容性问题。
在Windows的一面,我已经使用Windows Server Update Services获得了非常令人满意的结果。
使用像Aptitude这样的软件包pipe理器时,您是否保留升级/安装历史logging,如果是,那么您如何执行此操作?
apt保持login/ var / log / apt /,而dpkg使用/var/log/dpkg.log。 dpkg尤其是相当可分析的。
在OpenSuSE Linux,SLES和Novell OES(所有基于SuSE的产品)上,我们都有一个运行zypper的脚本,用于查找需要更新的软件包。 当它find一个时,它会向JIRA提交一张票并分配给系统pipe理员。 当我们安装更新时,我们closures票据,留下一条审计线索,告诉我们何时安装以及由谁来安装。 这可以通过集中在syslogging服务器上的zypper和sudo日志来协调/确认。