当我登录到服务器(Ubuntu 12.04)时,我发出以下消息:
12 packages can be updated.
10 updates are security updates.
Run Code Online (Sandbox Code Playgroud)
"手动"解决它很容易(apt-get update && apt-get upgrade),但由于服务器(部分)配置了Chef,我想知道是否有一种很好的方法可以将这种方式包含在食谱?
在"易"食谱似乎并没有提供相关的东西:(
干杯.
自动化软件包更新/升级通常是一个坏主意,因为如果没有先进行适当的测试,这显然会破坏应用程序.
解决此问题的一种方法是使菜谱锁定或将存储库保存在指定版本,然后在将其推送到生产环境之前对其进行全面测试.
在Amazon Linux上,您可以在其当前状态下检索yum存储库的唯一URL.因此,您可以在dev上运行更新/升级,找出唯一的URL并将其推送到prod.这将阻止Chef更新到比您测试过的任何新包.
我对Ubuntu和apt-get并不熟悉,但看起来你可以用Pinning或Holding来做我正在谈论的事情:https://help.ubuntu.com/community/PinningHowto
总而言之,您希望升级/更新开发机器,进行测试,找出repo状态,并将所有软件包冻结到这些版本.然后你将prod的回购冻结到那些州.然后你就像Draco提到的那样,让菜谱运行'apt-get -y upgrade'.