厨师包装版本

我们正在部署一个使用厨师的多节点PHP环境。

我已经为特定的服务器angular色编写了几本食谱,它们安装了应用程序使用的某些包(大部分是使用包pipe理器)。

现在,我想让厨师保持这些节点上的软件包是最新的。 我们有两个环境:开发和生产。 比如,当新版本的PHP出来的时候,我想在我们的开发环境中testing这个新版本,然后把它推广到生产环境。 我在安装PHP的配方中的包定义如下所示:

package 'php' do action :install version '5.3.27' end 

版本5.3.28发布时我应该采取哪些步骤?

厨师的最佳做法是始终以相同的“进入”状态开始。 如果您正在部署到云中,我将创build一个全新的虚拟机并从头开始部署PHP。

如果你没有这种奢侈,那么你就处于一个必须保持两个已知的起始状态的状态。 (1)没有安装PHP,(2)安装了旧版本的PHP。

你不能把它们连在一起,你总是先安装5.3.27,因为这会破坏资源的幂等性。

我会推荐一个手动步骤,你卸载5.3.27,并开始安装5.3.28厨师干净。

最后,我build议尽可能避免使用厨师angular色。 如果开发和生产系统共享相同的angular色(即,如何在不影响两个环境的情况下更改angular色),则无法进行版本pipe理并难以更新。相反,请考虑使用家长菜谱进行编排。