他の人がその理由をカバーしていると思うので、私はその方法を試します。誰かがPuppetを使ってあなたが望むことをする方法を理解することで、決定がより明確になると思います。
最初に基本的なケースを実行します
ApacheのPuppetモジュールは、デフォルトではあまり機能しません。Apacheをインストールし、最小限の標準に設定して、サービスを開始します。サポートする必要があるすべてのディストリビューションでこれを機能させます。
2番目に柔軟性を追加
仮想ホストを追加する必要があります。必要に応じて、conf.dまたはvhosts.d /ディレクトリのセットからファイルをドロップしたり削除したりできるシステムになります。モジュールの有効化または構成についても同様です。
役割またはホストグループクラスを使用して、ビルディングブロックを結合します。
Puppetを使用する最良の方法は、Puppetを確実に追加することです。上記の例を使用すると、次のことを行うモジュールが必要です
- Apacheをインストールする
- 基本構成を設定する
- Apacheにvhostsを追加する
- 追加の設定を構成します
- Apacheを起動する
特定のホストまたはグループに必要なことを実行するためにデフォルトのApacheモジュールをオーバーロードするのではなく、これを処理する必要があるのはロールまたはホストグループクラスです。
class role::web_cust1 {
include apache
apache::vhost {'www.domain.com': }
apache::vhost {'www.domain2.com': priority => '99', }
include php
include php-fpm
include mysql
}
再び添加剤。
Hieraに特別なケースを置く
私は、Puppet's Hieraに、Puppetのデータベースとして考え、特別なビットを保存させることの大ファンです。特定のホストまたはホストグループに特別な設定が必要な場合は、通常のユーザーがそのことを知る必要がないように、最初に適切なデフォルトをモジュールに配置します。次に、それらの特別なホストまたはホストグループのデータを挿入して、Hieraがデータを消費できるようにし、必要に応じてPuppetに渡します。
私のユースケースはリスニングポートです。一部のサーバーには、その前にワニスまたはハプロキシがあります。デフォルトでは、PuppetモジュールはApacheがポート80を使用しますが、Hieraがデータを見つけると、そのデフォルトを上書きします。