如何使用Chef运行安全更新?

时间:2012-12-18 14:58:41

标签: chef

当我登录服务器(Ubuntu 12.04)时,我收到以下消息:

12 packages can be updated.
10 updates are security updates.

“手动”解决它很容易(apt-get update&& apt-get upgrade),但由于服务器(部分)配备了Chef,我想知道是否有好处如何以编程方式将其包含在食谱中?

"apt" cookbook似乎没有提供相关内容:(

干杯。

4 个答案:

答案 0 :(得分:8)

自动化软件包更新/升级通常是个坏主意,因为如果没有先进行正确测试,这显然会破坏应用程序。

解决此问题的一种方法是将菜谱锁定或将存储库保存在指定版本,然后在将其推送到生产环境之前对其进行全面测试。

在Amazon Linux上,您可以在其当前状态下检索yum存储库的唯一URL。因此,您可以在dev上运行更新/升级,找出唯一的URL并将其推送到prod。这将阻止Chef更新到任何比你测试过的更新的包。

我对Ubuntu和apt-get并不熟悉,但看起来你可以用Pinning或者持有我正在谈论的内容:https://help.ubuntu.com/community/PinningHowto

总而言之,您希望升级/更新开发机器,进行测试,找出repo状态,并将所有软件包冻结到这些版本。然后你将prod的回购冻结到那些州。然后你就像Draco提到的那样,让菜谱运行'apt-get -y upgrade'。

答案 1 :(得分:3)

我在自己的食谱中只有execute 'apt-get -y upgrade'

答案 2 :(得分:1)

一方面,我同意"自动化软件包更新/升级通常是一个坏主意,因为如果没有首先正确测试,这显然会破坏应用程序。"我相信这是学术上的答案。

但是我的经验是,自动加载安全更新很少会导致问题,应该权衡丢失或延迟关键安全修复的可能性。 (我们从未允许自动重启,我想这就是我们划线的地方。)是否自动安全更新的决定应该基于您的情况的实际情况。没有一个通用的答案。

如果你想运行自动更新,有几本可用的烹饪书(至少对于Ubuntu而言),但不幸的是,似乎没有一个特别是最新的,这有点讽刺。这是一个例子: unattended_upgrades

答案 3 :(得分:0)

有一个自动补丁食谱可供选择:https://github.com/bflad/chef-auto-patch/

还有一篇关于如何将Chef整合到补丁过程中的Chef帖子: https://www.chef.io/solutions/patch-management/

它的要点是:

  • 识别漏洞。
  • 测试更新。
  • 推出补丁。
  • 监控意外的副作用。