2012-04-24 60 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

我會將這些服務器放置在適當的環境中,並匹配它們的設置。

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