我正在通过我的服务器上的 puppet 配置 syslog-ng。版本 2.x、3.1 和 3.3 之间的配置文件非常不同。在我的主机上,根据操作系统(centos5、centos6、debian 7、ubuntu),可用的 syslog-ng 版本会有所不同。
我有 2 个想法将 syslog-ng 的配置调整为正确的版本:
- 自定义事实:编写自定义事实来测试已安装的 syslog-ng 版本很容易。但如果尚未安装 syslog-ng,这个事实将毫无用处。
- 清单中的条件:我觉得在清单中定义一个“案例”有点难看,它将决定操作系统提供的 syslog-ng 的版本。
对我来说,最干净的方法是在安装之前测试哪个版本的软件包可以通过操作系统获得。一个因素可以做到这一点,但我想这会有点困难。
有木偶的方法来解决我的问题吗?