我能否清楚地了解厨师食谱的每个部分如何以及何时加载/执行?

我能否清楚地了解厨师食谱的每个部分如何以及何时加载/执行?

厨师食谱如下:

.
├── 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我特别困惑于在、librariesproviders和目录下加载文件的逻辑。它们都包含一个文件,但在某些情况下似乎会自动加载(例如,对于属性),recipes而在某些情况下则不会(例如,对于食谱)。有一个resourcesdefault.rb文档中的页面关于属性文件的加载顺序,但不清楚目录中的顺序attributes。我不清楚为什么你想要有除default.rb(似乎大多数食谱只使用default.rb)之外的属性文件。用例是什么?

也许我应该提出单独的问题,但我认为在这里进行总结可能会对其他厨师新手有所帮助。

多谢。

答案1

这实际上是一个相当复杂的问题,而且通常是 Chef 中最难理解的部分。我发现这个播客非常有帮助。

http://foodfightshow.org/2013/06/episode-53-chef-internals-with-dan-deleo.html

相关内容