处理菜谱版本取决于环境

时间:2016-03-08 16:16:30

标签: chef devops

我有一个疑问。我已经创建了应用程序的cookbook,在构建时,我正在根据环境更改cookbook的属性。所以在构建结束时,我生成了很少的工件。一个用于实际产品,另一个用于每个环境的烹饪工具。 现在,我怀疑的是,这里的每个食谱如何处理这个版本? 在构建过程中,我只能有一个版本,但如果我将相同版本应用于所有烹饪书,那么当我在所选节点上运行chef-client时,它们将相互覆盖。 有人可以建议我该如何处理?

此致

1 个答案:

答案 0 :(得分:0)

可以在metadata.rb下管理该食谱的版本。

name             'helloworld'
maintainer       'YOUR_COMPANY_NAME'
maintainer_email 'YOUR_EMAIL'
license          'All rights reserved'
description      'Installs/Configures helloworld'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version          '0.1.0'

如果基于 Dev Prod Test 创建Chef环境,我们可以在每个环境下标记一个cookbook版本,以便当你经营厨师 - 客户时,不会有任何冲突。

例如。

<强> env_dev.rb

name "development"
description "The master development branch"
cookbook_versions({
    "nginx" => "<= 1.2.1",
    "apt" => "= 0.0.2"
})

<强> env_prod.rb

name "production"
description "The master production branch"
cookbook_versions({
    "nginx" => "<= 1.1.0",
    "apt" => "= 0.0.1"
})