2012-04-24 68 views
4

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

我有一本安装mysql的食谱。

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

高度重视和它是:

MySQL的食谱内的每个服务器(角色)
  1. 一个脚本? (这样一个服务器的不同配置将在不同的食谱中)
  2. 为每个角色创建一本食谱,在这里我连接所有关于这个角色的特殊配置。 (这种方式1服务器的不同配置将在1个特定的地方,但我们将有1个额外的食谱)

我个人认为#1是更好的,因为我们加入不同的食谱下我的角色。

编辑

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

  1. 安装Tomcat或
  2. 用于安装其他应用,需要tomcat的?

回答

5

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

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

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

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

0

这个问题似乎尖叫着你使用environment,然后有不同的data bag entries based on environment

我会将这些服务器放置在适当的环境中,并匹配它们的设置。

或者,您拥有的角色提案也是有道理的。