为不同的服务器组织厨师烹饪书

时间:2012-04-24 07:06:53

标签: chef cookbook

我有几个不同的服务器用于不同的目的。每个人都使用mysql,但它应该配置有点不同。 =>不同的用户,不同的数据库。

我有一本安装mysql的食谱。

问题是,我应该在哪里放置为mysql创建数据库和用户的脚本?

应该是:

  1. mysql cookbook中每个服务器(角色)的一个脚本? (这样,1台服务器的不同配置将在不同的食谱中)
  2. 为每个角色创建一本食谱,我将连接有关此角色的所有特殊配置。 (这种方式1台服务器的不同配置将在1个特定的位置,但我们将有1个额外的食谱)
  3. 我个人认为#1更好,因为我们加入了不同角色的不同烹饪书。

    修改

    它不仅涉及数据库。例如,我有一些应用程序需要安装和配置tomcats / jetties /其他容器(不同的端口,启用不同的模块)。应该存储不同版本的settings.xml / jetty.xml等?在食谱中

    1. 安装tomcat或
    2. 安装其他需要tomcat的应用程序?

2 个答案:

答案 0 :(得分:5)

我建议包括Opscode database cookbook,它提供LWRP来管理数据库和数据库用户。

接下来,我建议创建一个利用数据库和data bags的LWRP的通用食谱。数据包将保存您的配置信息,并将隔离您的每服务器配置差异。

这将允许您为每个服务器(用户,数据库等)定义数据,并编写一个可以提取数据并使用它的食谱。

另外,请查看encrypted data bags,它允许您以加密形式将密码存储在Chef服务器上。

答案 1 :(得分:0)

这个问题似乎让您大肆宣传使用environment,然后又有data bag entries based on environment

我会将这些服务器放在适当的环境中,与他们拥有的设置相匹配。

或者,您对角色的提议也很有意义。