Automation
配置管理:跨機依賴
我使用過 puppet 之類的工具來管理單個系統,通常都取得了很高的成功。puppet 的失敗之處在於它不擅長管理單個伺服器之外的依賴項。
例如,在 MySQL 伺服器上,我將 puppet 配置為執行以下操作:
- 在機器上配置身份驗證以訪問我的 LDAP 伺服器
- 配置 apt 以使用我的本地儲存庫鏡像
- 安裝 MySQL 包
- 寫我的.cnf
- 啟動 MySQL
- 在數據庫中創建使用者
在這組步驟中,解決了許多依賴項 - 例如,除非我安裝了軟體包,否則我無法啟動數據庫服務,除非正確配置了 apt repo,否則我無法這樣做。
這個 MySQL 伺服器是 master->master 複製設置中的一個盒子。在理想的世界中,puppet(或其他類似工具)可以讓我表示伺服器 B 需要等到伺服器 A 可用,然後嘗試與它建立複製關係的事實。
這裡有很多文字 - 基本上我要問的是:有沒有像 puppet 這樣的工具可以管理這樣的機器間依賴關係?
如果您使用的是 Puppet,那麼導出的資源(以及因此儲存的配置)是這項工作的工具。這允許您在節點之間共享資訊。如果需要,包括實際的複制設置。
或者,雖然我自己不是訂閱者,但有些人將他們的清單/執行視為非確定性的。這意味著單次執行不一定聲明節點的完整結果。在節點達到其所需狀態之前,可能需要執行兩次或更多次。
由於在主伺服器可用之前配置 MySQL 從伺服器不會完全致命,因此您可能希望沿著這條路走下去。但在我看來,它並不那麼“聰明”。