我管理着大约 20 台服务器,其中许多是虚拟的。它们几乎都是不同用途的,并且没有集群。我有一个分布式 LAMP 堆栈、一些应用程序服务器、一些构建服务器、一些 KVM 主机。它们大部分是 CentOS 6.3,还有一些 Ubuntu(不幸的是)。我没有资源来设置一个临时环境,在那里我可以复制我的机器并在推出更新之前测试更新。我正在备份文件。我想知道您是如何备份 Linux 系统的。我假设您不只是执行 yum update,但是您如何选择值得更新的软件包?您何时(如果有的话)更新内核等。您如何在没有临时环境的情况下测试更新?快照并希望获得最佳效果?
答案1
这对于服务器来说很常见宠物,不是牲畜。
如果你确实无法测试更新,那么你可以:
- 做好备份。记住你实际上没有备份,除非恢复工作。
- 阅读更新的描述来了解它们的变化。
- 在非工作时间进行更新。即使最终不需要,也要安排维护时段。
- 应用更新。如果内核已更新,请重新启动。测试受影响的服务。
- 等待用户开始大喊。
- 如果有必要,回滚更新(使用
yum history undo
)。
我猜你不知道可以用一个命令恢复更新。查看yum
手册页并阅读其history
部分以了解你还能用它做什么。例如,你不必按照应用更新的顺序恢复更新。
别太担心。大多数更新都会修复您需要修复的问题;引入新问题的情况则少见得多(尽管这种情况确实会发生)。
答案2
yum 安全插件 ( yum install yum-plugin-security
) 只选择与安全相关的更新。理论上,这比修复其他错误和/或添加功能的更新风险更小。然后,只需根据需要更新其他软件包,以解决您遇到的任何错误或需要利用的任何新功能。
但实际上,除了使用临时环境和一套良好的测试之外,没有其他方法可以确定。没有软件是没有错误的,所有开发人员都可能犯人为错误,甚至 Red Hat 也会不时犯错,将回归问题放入 EL 代码库中。
在没有测试环境的情况下,问题可能不是“是否”会对你的业务使用这些服务器创收的能力产生影响,而是“何时”。不一定是更新,因为你所做的每件事都是在产品上实时完成的。
如果作为管理员的你被要求实施一些你从未做过的事情,该怎么办?在实施之前,你如何了解它并确保它按预期工作?从你所说的来看,你做不到。
为你的老板制定一个商业案例。计算在你从头开始重建环境并从备份中恢复数据期间所有系统不可用对业务的影响(即收入损失)。
如果收入损失低于建立临时环境的成本,那么构建此类环境就是一个不错的商业案例。适当的临时环境和测试不再是一项开支或投资,而是一项出奇便宜的保险政策。