puppet ruby 参数数量错误(1 代表 0)
puppet ruby wrong number of arguments (1 for 0)
首先,我知道有很多关于这个错误的问题,我已经检查了所有问题,但是我的问题没有用他们的任何解决方案解决。
我是第一次使用 Puppet / Ruby,遇到以下问题。
我创建了这个函数:
module Puppet::Parser::Functions
newfunction(:phpversion, :type => :rvalue) do
%x["/usr/bin/php -r 'echo PHP_MAJOR_VERSION . \".\" . PHP_MINOR_VERSION;'"]
end
end
当我在我的清单文件中调用它时使用:
$phpversion = phpversion()
当我执行代理时,它抛出错误“Error: Could not retrieve catalog from remote server: Error 400 on SERVER: wrong number of arguments (1 for 0) at /etc/puppetlabs/puppet/modules/x/manifests/somefile.pp:123 on node foo.example.bar"
我尝试在 do
语句后添加 |args|
并删除 :type
但它一直抛出相同的错误。当我使用 $phpversion = phpversion
时,它只是认为它是一个文本字符串而不是一个函数(这是我期望的,但无论如何都尝试过)。
如有任何帮助,我们将不胜感激。
如果您要获取 php 的版本,实际上这样做可能更容易:
Facter.add(:phpversion) do
setcode do
if Facter::Util::Resolution.which('php')
Facter::Util::Resolution.exec('/usr/bin/php -r 'echo PHP_MAJOR_VERSION . \".\" . PHP_MINOR_VERSION;'"').lines.first.split(/"/)[1].strip
end
end
end
将此目录 lib/facter/
放入您的模块中,然后在您的清单中将其引用为 $::phpversion
首先,我知道有很多关于这个错误的问题,我已经检查了所有问题,但是我的问题没有用他们的任何解决方案解决。
我是第一次使用 Puppet / Ruby,遇到以下问题。
我创建了这个函数:
module Puppet::Parser::Functions
newfunction(:phpversion, :type => :rvalue) do
%x["/usr/bin/php -r 'echo PHP_MAJOR_VERSION . \".\" . PHP_MINOR_VERSION;'"]
end
end
当我在我的清单文件中调用它时使用:
$phpversion = phpversion()
当我执行代理时,它抛出错误“Error: Could not retrieve catalog from remote server: Error 400 on SERVER: wrong number of arguments (1 for 0) at /etc/puppetlabs/puppet/modules/x/manifests/somefile.pp:123 on node foo.example.bar"
我尝试在 do
语句后添加 |args|
并删除 :type
但它一直抛出相同的错误。当我使用 $phpversion = phpversion
时,它只是认为它是一个文本字符串而不是一个函数(这是我期望的,但无论如何都尝试过)。
如有任何帮助,我们将不胜感激。
如果您要获取 php 的版本,实际上这样做可能更容易:
Facter.add(:phpversion) do
setcode do
if Facter::Util::Resolution.which('php')
Facter::Util::Resolution.exec('/usr/bin/php -r 'echo PHP_MAJOR_VERSION . \".\" . PHP_MINOR_VERSION;'"').lines.first.split(/"/)[1].strip
end
end
end
将此目录 lib/facter/
放入您的模块中,然后在您的清单中将其引用为 $::phpversion