保持UNIX包最新的最佳实践?


30
  • 您如何使服务器保持最新状态?
  • 当使用像Aptitude这样的软件包管理器时,您是否保留升级/安装历史记录,如果是,您该怎么做?
  • 在多台服务器上安装或升级软件包时,是否有任何方法可以尽可能地加快该过程?

Answers:


19

在基于Linux / Debian的系统上,cron-apt是非常方便的工具,可以通过cron管理自动化apt。

apt-get update每天都在使用它,如果必须安装新的更新,请给我发送电子邮件。

这是对该工具简短而完善的介绍


我希望自动更新的软件包最少,而重要的是安全更新。因此,我将以下内容添加到cron-apt配置文件中: OPTIONS="-o Dir::Etc::SourceList=/etc/apt/security.sources.list" 然后使/etc/apt/security.sources.list启用了Debian安全性存储库。这样,我就可以及时(每个晚上)自动安装所有安全更新,并且我可以进行其他更危险的升级,这些升级可能会手工破坏事情。
德鲁·史蒂芬斯

10

关于您的第三个问题:我总是运行本地存储库。即使仅用于一台计算机,它也可以节省时间以防万一我需要重新安装(我通常使用aptitude autoclean之类的东西),而对于两台计算机,它几乎总能带来回报。

对于我管理的集群,通常不保留明确的日志:我让程序包管理器为我做。但是,对于那些机器(相对于台式机),我不使用自动安装,因此对于要在所有机器上安装的内容,我都有自己的注释。


4
哇; 是每个人都因为我的才华横溢而欢欣鼓舞,还是有人竞相获得徽章?;)
Mikeage


4

我使用apt-history作为历史记录。我不知道为什么默认情况下不包含这个有用的工具,这是我使用puppet部署的第一个软件包。


apt-history与/ var / log中默认记录的记录有何不同?
jldugger

我不知道您指的是什么(根据您的回答);我想我已经了解了apt的历史并习惯了它。
在2009年

3

我每天晚上都将/ usr / bin / apt-get update -qq; / usr / bin / apt-get dist-upgrade -duyq运行为cron作业。早上,我收到有关需要升级哪些软件包的通知,并且文件已下载到计算机上。

然后,我通常会为计算机拍摄快照(我们的大多数服务器都是虚拟的),执行apt-get dist-upgrade,检查nagios并确保一切仍然正常,然后删除快照。

最后,我在Wiki上保留了对每个服务器所做的所有更改的运行清单,以跟踪以后出现的任何问题。

就限制冗余下载而言,据我了解,您可以在服务器和Internet之间设置一个缓存Web代理(squid?),该代理将在首次访问.deb文件时对其进行缓存。也许这比设置本地程序包存储库更简单-并具有加快常规Web浏览速度的其他好处。


1

apt-cacher非常适合缓存程序包,它将在第一次需要它们时就进行缓存,而不是完成整个存储库的完整镜像,从而节省了磁盘和带宽。它也很方便,因为它同时将包的第一个请求直接流到请求者,同时对其进行缓存,因此没有额外的延迟。


1

运行本地存储库是准确管理本地服务器上内容的最佳方法。它还使您可以轻松部署自定义反向端口或自定义本地程序包。我知道制作本地“元软件包”只是极大的依赖项,以简化本地安装。(例如,“ apt-get install local-mailserver”)。这还有一个副作用,即还允许您“版本化”配置更改。(对于更复杂的配置管理,您将需要Puppet之类的东西)


1

对于我们的Windows机器,我们有一个本地WSUS服务器,以及一个用于每月应用补丁的标准窗口。对于Linux系统(RHEL),我们在园区中都有一个RHN卫星服务器,它们都已加入其中。这样可以为您管理的每个已连接系统提供一个不错的仪表板,以及每个系统的未应用更新。对于木偶,我们推出一个脚本,该脚本会在常规窗口中自动应用补丁,并发送包含结果的电子邮件通知。


0

您可以拥有一个本地存储库,并将所有服务器配置为指向该存储库以进行更新。您不仅可以获得本地下载的速度,而且还可以控制要在基础结构上安装哪些官方更新,以防止出现任何兼容性问题。

在Windows方面,我使用Windows Server Update Services的结果非常令人满意。


0

当使用像Aptitude这样的软件包管理器时,您是否保留升级/安装历史记录,如果是,您该怎么做?

apt在/ var / log / apt /中保留一个日志,而dpkg使用/var/log/dpkg.log。dpkg特别是相当可解析的。


0

在OpenSuSE Linux,SLES和Novell OES(所有基于SuSE的产品)上,我们都有一个脚本,该脚本运行zypper并查找需要更新的软件包。找到一个票证后,它将向JIRA提交票证,并将其分配给sysadmins。在安装更新时,我们将关闭故障单,从而留下一条审核记录,告诉我们该程序的安装时间和安装者。可以通过集中在syslogging服务器上的zypper和sudo日志进行协调/确认。

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.