我们正在研究一种为基于RHEL / RHEL的服务器执行自动更新的方法.
最初的想法:使用Puppet,我们禁用默认存储库并指向我们自己的存储库.然后,我们使用ensure =>我们想要自动更新的软件包的最新版本.
问题:我们看到一些服务在更新后重新启动(duh).
问题:有没有人对如何更好地自动化Linux更新以及减轻服务自动重启的策略有任何建议?我们更喜欢包含Puppet的解决方案,但如果我们需要使用其他服务,那么这不是一个交易破坏者.
编辑
可能的解决方案:我提交的解决方案实现了@ voretaq7和@ewwhite建议的许多内容.似乎这是我暂时想要的路线.如果您有其他建议,请发表评论或提交答案.
解决方法
您的一般更新策略是合理的:您有一个本地仓库(我假设您在开发环境中进行测试),并且您根据(我假设已知的好)仓库更新所有内容.
服务重启是不可避免的:如果底层代码已更改,则需要重新启动服务才能使该更改生效.如果不这样做可能会导致更糟糕的后果(运行代码与共享库不同步导致应用程序崩溃).
在我的环境中,我认为季度补丁窗口是季度“重新启动所有事情!”窗户也是.这种策略的优点是您知道您的服务器将在重新启动后重新启动,并且您知道它们将正常工作(因为您经常测试它们).
我最好的建议是安排软件版本(也许这意味着你必须用木偶“手动”触发它们),并告知用户计划的维护/停机时间.
或者(或作为其一部分),您可以在您的环境中配置冗余,以便您可以重新启动一些计算机或服务,并仍然为最终用户提供服务.这可能无法完全消除任何中断,但它可以帮助最小化它们.
增加的冗余还可以在发生硬件故障时保护您,这在很长的时间范围内是不可避免的.