Chef infra 在哪里可以放置需要从所有烹饪书中访问的属性

Chef infra 在哪里可以放置需要从所有烹饪书中访问的属性,chef-infra,chef-solo,Chef Infra,Chef Solo,是否有地方可以放置所有常用属性/属性。?也许是solo.rb -j json不适用于我。把它们放在一本普通的食谱中。答案实际上取决于它是什么类型的属性 例如,您可以在中设置公共全局属性: 环境 角色 包括在所有其他食谱中的食谱 另一种奇特的选择是使用数据包,这是记录全球数据的另一种有用方法 示例用例: 在环境中存储真正的全局信息(永不改变的内容)。这使您能够稍后创建具有略微不同的全局默认值的虚拟机逻辑分组 对于很少改变的公共属性,考虑一个普通的食谱,而不是一个角色。无法对角色进行版本控制—

是否有地方可以放置所有常用属性/属性。?也许是
solo.rb


-j json
不适用于我。

把它们放在一本普通的食谱中。

答案实际上取决于它是什么类型的属性

例如,您可以在中设置公共全局属性:

  • 环境
  • 角色
  • 包括在所有其他食谱中的食谱
另一种奇特的选择是使用数据包,这是记录全球数据的另一种有用方法

示例用例:

  • 在环境中存储真正的全局信息(永不改变的内容)。这使您能够稍后创建具有略微不同的全局默认值的虚拟机逻辑分组
  • 对于很少改变的公共属性,考虑一个普通的食谱,而不是一个角色。无法对角色进行版本控制—如果您以后希望支持Dev/Test/Prod环境,此功能可能会很有用
  • 当用于“数据驱动”烹饪书时,数据包最有用。我使用它们来生成资源,例如项目和系统中其他类型的实体

我应该在
metadata.rb
中为这本普通食谱添加依赖项吗?我知道这本书很旧,但我认为普通(“基本”)食谱很棒,即使属性从未更改。在我的场景中,我们有源代码管理(duh)中的烹饪书,它们的上传和其他管理都是自动化的。我们的环境没有源代码控制,也没有自动化。我们的厨师服务器崩溃了。我们知道这是个问题,但并不担心。因此,如果我们把它们放在一本食谱中,我们就可以使用我们已经建立的相同的自动化模式。当然,我们可以将一个环境置于源代码管理中并实现自动化,但cookbook似乎更容易。@JasonCapriotti您描述的是一个应用程序cookbook模式,这是非常合法的,因为可以使用Berkshellf下载依赖项,如“基本”cookbook。环境仍然可以用来补充此解决方案,使您能够覆盖在cookbooks中默认的设置。有关更多信息,我建议如下: