厨师食谱如下:
.
├── attributes
│ ├── default.rb
│ └── bla.rb
├── files
│ ├── default
│ │ └── some_file.txt
│ └── windows
│ └── some_file.txt
├── libraries
│ ├── mylib.rb
│ └── default.rb
├── providers
│ ├── default.rb
│ └── foo.rb
├── recipes
│ ├── bar.rb
│ └── default.rb
├── resources
│ ├── default.rb
│ └── foo.rb
└── templates
├── default
│ └── some_template.erb
└── windows
└── some_template.erb
我经历了文档,但我仍然不清楚 Chef Cookbook 的每个部分是如何以及何时加载/执行的,以及它是自动的(如果是,按什么顺序?)还是按需的。您能否提供摘要或指出一个?
attributes
我特别困惑于在、libraries
、providers
和目录下加载文件的逻辑。它们都包含一个文件,但在某些情况下似乎会自动加载(例如,对于属性),recipes
而在某些情况下则不会(例如,对于食谱)。有一个resources
default.rb
文档中的页面关于属性文件的加载顺序,但不清楚目录中的顺序attributes
。我不清楚为什么你想要有除default.rb
(似乎大多数食谱只使用default.rb
)之外的属性文件。用例是什么?
也许我应该提出单独的问题,但我认为在这里进行总结可能会对其他厨师新手有所帮助。
多谢。
答案1
这实际上是一个相当复杂的问题,而且通常是 Chef 中最难理解的部分。我发现这个播客非常有帮助。
http://foodfightshow.org/2013/06/episode-53-chef-internals-with-dan-deleo.html