每隔一段时间我login到生产web / db /工具箱,并看到典型的消息:
我的问题是,你们如何处理你的生产Ubuntu盒子上的更新? 你是否自动执行这些更新? 你是否为他们设置了停机时间? 问题是,你永远不知道什么时候更新会打破某些东西,比如现有的configuration文件等等。
这个问题的另一部分是,跟上补丁是一件好事,但补丁几乎每天都会发布。 如果每天都有一个新的安全补丁,那么有多less计划中断?
我认为有关如何pipe理更新的答案是非常有用的。
修补Ubuntu与Windows,RHEL,CentOS,SuSE,debian等没有什么特别之处。
在devise补丁程序时,您需要考虑的基本状态是假设某些事情会中断。
在devise补丁设置时,我倾向于使用的一些基本指导原则是:
这可能包括将WSUS或<your_os_here>
镜像用于内部修补程序pipe理机器。 最好能够集中查询并让你知道安装在你的个人机器上的补丁的状态。
当有可能的时候,补丁出来后,中央服务器把它们复制到各个机器上。 这真的只是一个节省时间,所以你不必等待他们下载和安装,你只需在补丁窗口中启动安装。
根据我的基本理论,补丁破坏事物,确保你有一个停机时间窗口来应用补丁足够长的时间来解决关键问题,并可能将修补程序回滚。 在修补程序之后,你并不需要让人们坐在那里testing。 就我个人而言,我非常依赖我的监控系统,让我知道所有的function都在最低水平,我们可以逃避。 但也要为人们开始工作时所要求的一些小唠叨问题做好准备。 你应该总是有人安排在那里准备好接电话 – 最好不是那个一直到凌晨3点才打补丁的家伙。
就像IT中的其他一切,脚本,脚本,然后再编写一些脚本。 脚本包下载,安装启动,镜像。 基本上你想把补丁窗口变成一个婴儿坐的任务,只需要一个人在那里,以防万一事情破裂。
这使您无法修补某些服务器,因为无论什么原因,无法在“指定的夜晚”进行修补。 如果你不能在晚上做他们1,要求他们在晚上免费2.也让你保持服务器数量同时补丁。
最重要的是跟上补丁! 如果你不这样做,你会发现自己不得不做很大的10多个小时补丁窗口才能回到你被追上的地步。 在可能出现问题的地方引入更多的观点,并且找出哪个补丁更加困难。
这个问题的另一部分是,跟上补丁是一件好事,但补丁几乎每天都会发布。 如果每天都有一个新的安全补丁,那么有多less计划中断?
一个月或一个月一次修补服务器是 – 恕我直言 – 一个非常可行的,可以接受的目标。 更重要的是,你将不断地修补服务器,更less的,你开始进入你需要应用每个服务器数百个补丁的情况。
至于你需要一个月多less个窗户? 这取决于你的环境。 你有多less台服务器? 你的服务器需要多长时间?
较小的9×5环境可能每个月都会有一个补丁窗口。 大型24×7商店可能需要两个。 非常大的24x7x365每个星期都可能需要一个滚动窗口来每周修补一组不同的服务器。
find适合您和您的环境的频率。
有一点要记住的是,100%的最新是不可能实现的目标 – 不要让你的安全部门告诉你。 尽你所能,不要落后太多。
要做的事:
要避免的事情:
还有一点值得:如果你习惯于Windows,大部分Linux更新不需要停机或重新启动,你会感到惊讶。 一些做,如内核更新。 但是需要重新启动或停机的更新通常会被标记为这样,并且可以单独处理。
我们的Ubuntu机器都运行LTS版本。
我们只是自动安装所有的更新 – 确定它不是“最佳实践”,但我们是一个相对较小的商店,没有每个服务的testing/开发/生产环境。 无论如何,LTS更新通常都经过相当好的testing和微创。
升级到新版本显然是多一点涉及。
我们处理更新下面的方式为Ubuntu LTS系统:
对我们来说,下一个合理的步骤是消除内存中的会话信息,这样我们可以每天甚至每天多次重新部署基础架构,而不会影响客户并消除步骤(2)。
这种方法是低维护,完全避免维护窗口。
我build议的一件事是处理软件包的回滚。 有关如何执行此操作的build议,请参阅“ 与Debian进行交易和回滚” ,因为有时您需要快速修复某个升级,从而破坏某些内容。