目标厨师Java食谱配方版本到特定环境

时间:2016-06-17 18:06:13

标签: chef chef-recipe

我对相当陌生,我正在寻找在我们的厨师托管服务器上升级版本的正确方法。

我有3个厨师管理的游乐场环境( P1 P2 P3 )通常它们保持不变。除了像DB或java升级那样进行一些升级时

对于每种环境:烹饪书的版本通常在 P1 P2 P3 中相同。通常,如果我更新食谱,厨师通常会将菜谱更改应用于所有3种环境。我需要将更改仅应用于 P1 中的服务器。

如何告诉大厨只将新版本的java食谱应用于 P1 环境?

2 个答案:

答案 0 :(得分:3)

您可以使用cookbook_versions限制每environment次使用的食谱版本。

P1 中“取消固定”(不受限制)时,将以下内容添加到其他两个环境定义中:

cookbook_versions({
  'java' => '< 2.0.0'
})

这会将这些环境限制为1.x.y食谱的java版本。如果一切正常,则通过将其从其他环境中删除来释放该版本约束。

可选择熟悉environment cookbook pattern,这对我们中的许多人来说可能有些过分,但恕我直言会提供高级工作流程外观的良好印象。

此外,相对较新的Policyfiles概念也应该为您提供解决该问题的方法。

答案 1 :(得分:0)

可以使用环境文件中的覆盖属性指定Java版本。

"override_attributes": {
    "java": {
      "jdk_version": "8"
    }
  }