我们正在使用厨师部署一个多节点PHP环境。
我为特定的服务器角色编写了几本食谱,它们安装了应用程序使用的特定包(主要是使用包管理器)。
现在,我想让厨师保持这些节点上的包是最新的。我们有两个环境:开发和生产。比方说,当PHP的新版本发布时,我想在我们的开发环境中测试这个新版本,然后将它推广到生产中。我在PHP安装配方中的包定义如下所示:
package 'php' do
action :install
version '5.3.27'
end当5.3.28版本发布时,我应该采取哪些步骤?
发布于 2013-11-21 13:26:31
对厨师来说,最好的做法就是从同样的“进入”状态开始。如果您要部署到云端,我将创建一个全新的VM并从头部署PHP。
如果你没有那种奢侈,那么你就处于一种情况下,你必须保持两个已知的起始状态。(1)没有安装PHP,(2)安装了PHP的旧版本。
在总是先安装5.3.27的地方,您不能将它们链接在一起,因为这会破坏该资源的幂等性。
我建议您先卸载5.3.27,然后从5.3.28厨师安装开始清理。
最后,我建议尽量避免使用厨师的角色。当您的开发和生产系统共享相同的角色时(例如,如何在不影响这两个环境的情况下更改角色),它们就不能被版本化,并且很难更新?相反,可以考虑使用父母的食谱来编排。
https://serverfault.com/questions/556516
复制相似问题