Configuration-Management

為託管應用程序生成/管理配置文件

  • March 18, 2010

編輯 - 我開始研究 Perl 的模板工具包。它似乎很適合下面描述的問題。有人玩過嗎?任何(詳細)建議?

我問了一個關於配置管理的問題,還沒有看到回复。可能我的問題太模糊了,所以讓我們開始吧。以下是我們在將新客戶實例加入託管應用程序時遵循的流程:您將如何管理?我傾向於使用 Perl 腳本來填充模板以生成 shell 腳本、配置文件、XML 配置文件等。簡要地看一下 CFengine 和 Chef,似乎它們不會減少工作量,因為我d 仍然必須手動指定工具中的所有更改/編輯。直接接觸配置文件似乎並沒有太大的收穫。

  1. 我們在核心(第 3 方)應用程序的主配置文件中添加一個節。這節的價值觀是
  • 定義實例(客戶)名稱
  • 此實例的 TCP 偵聽器埠(目前未使用)
  • DB2 數據庫名稱(序列數字標識符,已經存在,它們由 DBA 為我們預留)
  • 三個子配置文件,按名稱 - 它們需要從 3 個模板創建並以實例命名
  1. 子配置文件定義:
  • DB2 卷的文件路徑
  • 儲存對象的文件路徑
  • 僅一個 DB2 卷的文件路徑(是的,對於第一項是多餘的。
  1. 我們執行一些應用命令,啟動實例
  2. 我們做一些 LDAP 事情(為實例創建一個 OU,等等)
  3. 我們將一個節添加到我們的安全偵聽器的配置文件中,作為 LDAP 的傳遞
  • 實例名稱
  • LDAP OU
  • 例如 TCP 埠
  • DB2 數據庫名稱
  1. 我們重新啟動安全偵聽器(非工作時間),從第 1 項更改主配置文件,停止並重新啟動實例。它現在通過 LDAP 進行身份驗證。
  2. 我們將此實例的停止和啟動命令添加到 HA 故障轉移腳本中。
  3. 我們將 XML 配置文件導入到實例中,該文件為客戶的實際應用程序定義事物 - 使用者名、組、權限和業務規則。XML 由實施團隊提供。

現在,我們配置數據載入應用程序

  1. 我們向現有的頂級配置文件添加一個節,該節指向一個新的客戶級配置文件。新的客戶級配置文件包括:
  • 實例(客戶)名稱
  • DB2 數據庫名稱
  • 任意數量的子配置文件,按名稱
  1. 每個子配置文件定義:
  • 用於攝取、回饋、備份和失敗的目錄的文件路徑
  • 這些文件路徑具有指向客戶特定文件夾的公共路徑,然後每個子配置文件都有一個文件夾
  1. 需要創建每個文件路徑
  2. 我們需要將此客戶實例添加到我們的監控腳本中,以確認正確的程序正在執行並且可以登錄。當然,這些監控配置文件包括實例名稱、TCP 埠、DB2 數據庫名稱等。
  3. 還有一個需要為新實例配置的報告應用程序。你明白了。
  4. 還有由中間件團隊載入到 WAS 中的 XML。我們為他們提供插入 XML 的值——他們可以很容易地將模板交給我們,我們可以將完整的 XML 還給他們。

我認為您可以非常成功地使用Bcfg2 。它是一個非常靈活和可擴展的配置管理系統。它帶有 Genshi 用於基本的模板邏輯,但允許任意內聯 Python 程式碼執行更複雜的事情。

您可以擁有一個包含每個實例的所有資訊的數據庫,然後設置 Bcfg2 以基於該數據庫生成每一位配置。作為額外的好處,如果您必須在大量實例(或所有實例)中更改某些內容,那將是完全輕鬆的。

引用自:https://serverfault.com/questions/121759