厨师 – 多less抽象是聪明的?

我们有> 20个我们支持的个人应用程序。 大多数人每年看不到几次变化。 我们认为厨师会帮助我们。

我正在尝试在手动configuration和自动化之间find一个快乐的媒介。 我有两个很好的问题:

1)为我们的每个应用程序设置一个厨师服务器和食谱和angular色更聪明吗? 还是应该隔离每个项目,并为每个应用程序有一个厨师服务器?

2)(如果我们有多个厨师服务器)如​​何pipe理多个厨师服务器? 与另一个厨师服务器? 厨师独奏?

我看到许多文章记载如何设置厨师或覆盖function,但我还没有看到一个非常好的文件logging如何有人在大中型生产环境中使用厨师。 在这方面的一些提示可能会很好。

谢谢!

主要的问题是有点棘手。 “抽象”的回答是“不是太多,但不是太less”。 只是稍微更严重一点,这是你必须自己解决的,因为它取决于很多因素。

一个好的第一步就是创build一个“basenode”configuration(一个angular色和环境属性),让你的所有节点都由Chefpipe理。 这可能包括一堆现有的社区食谱,例如:

  • build立必要的
  • 厨师客户端
  • 用户 (虽然我更喜欢fnichol的厨师用户食谱 )

在这个阶段,你的应用程序将被configuration和安装在基本节点之上。

现在您应该对厨师的工作有更好的了解,您可以开始思考更多特定领域的食谱。 继续自下而上的工作,编写食谱来安装应用程序所需的包,并使用属性和数据包来configuration它们。 您提到的20个应用程序(例如,大多数Rails应用程序)之间可能有一些共同点,您可以将这些应用程序分解为一组常见的配方。

您在寻找介于手动configuration和自动化之间的媒介方面有很好的意义。 我和Chef一起出现的一个陷阱就是尝试尽可能地自动化。 这最终变成了angular落案例的噩梦,以及通过手工重新启动服务或重新启动节点修复的怪异错误。 没有乐趣维护和debugging。 这几天我尽可能地坚持包,文件和模板资源。

有100个angular色听起来有点超过顶部,但我不知道你的情况更多的细节。 我倾向于使用“Apache-Server”或“RabbitMQ-Server”等更通用的angular色,然后使用属性,数据包和更多特定angular色的各种组合来个性化每个节点。