更新以前未维护的服务器 RHEL5.7 的最佳实践

更新以前未维护的服务器 RHEL5.7 的最佳实践

最近我接手了一台新的 RedHat EL5.6 服务器。很明显,在过去的 12 个月里,几乎没有关注过任何类型的软件包更新。

通常我的想法是,如果它没坏,就不要去修理它。然而,在用 RHN 注册服务器并使用 yum-security 插件检查安全更新后,有超过 1100 个“安全”更新可用。

有人遇到过类似的情况吗?我不愿意更新所有内容,因为我想知道更新的内容以及它是否有可能影响机器上运行的任何内容(这是一台生产服务器)。但是,看起来要遵循这种做法还需要我逐行检查 1100 个软件包勘误表。有没有更有效的解决方案?

答案1

一般来说,安全更新被认为是比较安全的,特别是对于像 RedHat 这样的发行版来说。他们的核心重点是创建一个一致的操作环境。因此,维护者倾向于选择软件包版本并长期坚持使用它们。要了解我的意思,请查看这些软件包的版本,例如kernel、、和。他们还会从上游开发人员那里反向移植安全补丁。因此,如果发现 Apache httpd 2.2.x 的所有版本都存在安全漏洞python,那么 Apache 基金会可能会发布带有修复程序的 2.2.40 版本,但 RedHat 将在本地推出补丁并发布修复程序。perlhttpdhttpd-2.2.3-80

另外请记住,您目前正在谈论的是 RHEL5.7 系统,当前版本是 5.9。一些软件供应商只支持某些子版本。例如,我最近遇到了一个软件,供应商说它只适用于 5.4。这并不意味着它惯于在 5.9 上运行,但这可能意味着他们不会提供任何支持,如果没有工作。

对一个很久没有打过补丁的系统进行大规模更新也存在一些问题。我遇到的最大问题实际上是配置管理问题,而大规模更新只会加剧这个问题。有时配置文件被更改,但管理员从未重新启动服务。这意味着磁盘上的配置从未经过测试,并且正在运行的配置可能不再存在。因此,如果服务重新启动(应用内核更新后就会发生这种情况),它实际上可能不会重新启动。或者它可能会表现不同一次它重新启动了。

我的建议是进行更新,但要明智行事。

  • 在维护时段内做好计划。如果没有其他操作,服务器将需要重新启动,因为已经有许多内核更新,您必须重新启动才能应用它们。
  • 确保在执行任何操作之前进行完整备份。如果这是虚拟机,这可能是快照,触发工具上的完整备份,tar /(到另一个系统),获取dd驱动器映像,等等。只要它是你可以恢复的东西。
  • 规划出如何你应用更新。你不想只是扔掉yum update -y它然后走开。对于 yum 所做的所有好事,它不是根据依赖关系应用更新时按顺序执行。这在过去曾引起过问题。我总是运行yum clean all && yum update -y yum && yum update -y glibc && yum update。这往往能解决大多数潜在的排序问题。

这也可能是重新平台化的好时机。我们已经使用 RHEL6 有一段时间了。根据这台服务器的功能,让这台服务器按原样运行,同时启动一个新实例可能是明智的做法。然后,一旦安装完成,您就可以复制所有数据,测试服务并执行切换。这也将让您有机会从头开始了解系统是否标准化、干净、文档齐全,以及所有这些功能。

不管你做什么,我觉得让自己适应当前的系统非常重要。你只需要确保以一种让你信任你的工作和成品的方式来做这件事。

答案2

根据我的经验,RHEL 不会破坏同一版本更新中的向后兼容性。

但是,这不会扩展到 rpm 外部安装的任何东西。

您可以使用它rpm -qf来查找您怀疑是外部编译的文件,如果它返回“不属于任何包”,那么您的升级可能会出现问题。

我会拍摄服务器图像并进行升级,但是我比大多数人更谨慎。

相关内容