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