我目前的理解:
- 您可以向客户端添加配方。一个配方可以包含其他配方。
- 您可以为客户端添加角色。角色可以包含其他角色和配方。
那么配方和角色之间有什么实际区别呢?为什么我要制作一个由多个配方组成的角色,而不是仅仅制作一个由多个配方组成的配方?
答案1
唯一主要的实际区别是角色无法进行版本控制,并且搜索角色中的 Chef 节点比搜索运行配方的 Chef 节点更容易。它们旨在成为一种轻量级的方式来对不应包含太多业务逻辑的服务器进行分组。许多实现完全避开角色,转而采用“角色手册”——基本上是编写为像角色一样运行的手册。
以下是我最喜欢的两篇关于这个主题的文章:
http://realityforge.org/code/2012/11/19/role-cookbooks-and-wrapper-cookbooks.html