あなたが提案するどちらのアプローチにも問題はありません。3つのパペットマスターがあり、すべて1つのサイトに配置され、世界中のノードにサービスを提供しています。接続しているパペットノードがdev / test / prodにあるかどうかに基づいてそれらを分離します。他の人々は、地理的地域ごとに操り人形マスターを実行することを好みます。他の人々はたくさんの操り人形マスターを持っています、いくつかは1つのノードだけを管理しています!
重要なことは、バージョン管理システムにpuppetmasterマニフェストツリーを格納および管理することが重要であり、会社が管理する他のコードと同様に扱うことです。Gitをお勧めしますが、慣れればSubversionでもうまくいきます。puppetmasterは、中央データベース自体ではなく、VCSの特定のビューを提供するサービスです。
VCSのコンテンツを使用して、必要なマニフェスト/モジュールをそれぞれのパペットマスターにデプロイし、それらを簡単に同期させることができます。慣習として、puppetモジュールごとにgit / svn repo / moduleを持っている人がいるようですが、ツリー全体を1つのrepo /モジュールの下に置くことを妨げるものは何もありません。
あなたへの私の質問は:
- 各デプロイメントにはノードがいくつありますか?あなたが50以上について話しているなら、それは確かに地元の操り人形マスターを持っている価値があるでしょう。
- 展開には、会社の他にそれらを使用するサードパーティがありますか?操り人形マスターは非常に高いセキュリティを持つ必要があります-それはあなたのすべてのシステムのドアへの鍵であり、非常に機密情報が含まれると考えてください。
- 同様に、展開ベースのPMの場合、それらを独自のサーバー/ VMでホストしますか、それとも既存のマシンにタスクを割り当てる必要がありますか?セキュリティのために、puppetmasterサーバーにその役割だけを持たせることを強くお勧めします。
- EC2がより高い可用性を提供することをどのように期待していますか?私の理解では、EC2インスタンスはHAではありませんが、AWSロードバランサーサービスの背後で2つ以上のパペットマスターを実行することは可能です。
- 展開は大きく異なりますか?1日の異なる時間に変更しますか?複数の操り人形マスターは、より細かいレベルの制御を提供します。