サーバーで puppet を介して syslog-ng を構成しています。構成ファイルは、バージョン 2.x、3.1、および 3.3 の間で大きく異なります。私のホストでは、オペレーティング システム (centos5、centos6、debian 7、ubuntu) によって、利用可能な syslog-ng のバージョンが異なります。
syslog-ng の構成を正しいバージョンに適合させるための 2 つのアイデアがありました。
- カスタム ファクト : インストールされている syslog-ng のバージョンをテストするためのカスタム ファクトを簡単に作成できます。しかし、syslog-ng がまだインストールされていない場合、この事実は役に立ちません。
- マニフェストの条件: オペレーティング システムが提供する syslog-ng のバージョンを決定する「ケース」をマニフェストで定義するのは少し見苦しいと思います。
私にとって、これを行う最もクリーンな方法は、インストール前にオペレーティング システムでどのバージョンのパッケージを利用できるかをテストすることです。ファクトリならできますが、少し難しいと思います。
私の問題を解決する人形のような方法はありますか?