我的 php 模块中有一个小的自定义事实
Facter.add('php_extension_version') do
setcode do
Facter::Core::Execution.exec("php -i | awk '/^PHP Extension =>/ { print $4}'") || nil
end
end
这显然需要安装 php 二进制文件。但是,我注意到在应用目录之前所有的事实都运行一次,所以这个事实在 php 安装之前是无效的。
安装模块后有什么方法可以收集信息吗?除了事实之外,是否还有另一种公开这些信息的方式?
更新
我使用这两个事实来确定多个 .so 文件中的哪一个适合安装:
if $php_zts_enabled {
$so_name = "newrelic-$php_extension_version.so"
} else {
$so_name = "newrelic-$php_extension_version-zts.so"
}
file {"/usr/lib64/php5/extensions/newrelic.so":
source => "file:///opt/newrelic-php5-$version-linux/agent/x64/$so_name",
owner => root,
group => root,
mode => 0644,
notify => Service['apache'],
require => Exec["extract-php-agent-$version"]
}
位于 agent/x64 目录中的文件可以是
newrelic-20060613.so newrelic-20090626-zts.so newrelic-20121212.so newrelic-20131226-zts.so
newrelic-20060613-zts.so newrelic-20100525.so newrelic-20121212-zts.so
newrelic-20090626.so newrelic-20100525-zts.so newrelic-20131226.so