Ruby Puppet自定义事实-未初始化常量事实(NameError)
我真的很抱歉,如果我错过了什么,这已经得到了回答,我已经搜索了这个网站,谷歌,但找不到任何东西,来吧 我正在运行Ruby 1.8和Puppet 2.7。我对这两个网站都是新手,但在过去的几周里,我用Puppet做了大量的工作,在不破坏我的网站的情况下触摸木头:) 我现在想写一些习惯事实。我一直在试验电脑上的指令。我已经编写了一个hardware_platform.rb,如下所示:Ruby Puppet自定义事实-未初始化常量事实(NameError),ruby,puppet,Ruby,Puppet,我真的很抱歉,如果我错过了什么,这已经得到了回答,我已经搜索了这个网站,谷歌,但找不到任何东西,来吧 我正在运行Ruby 1.8和Puppet 2.7。我对这两个网站都是新手,但在过去的几周里,我用Puppet做了大量的工作,在不破坏我的网站的情况下触摸木头:) 我现在想写一些习惯事实。我一直在试验电脑上的指令。我已经编写了一个hardware_platform.rb,如下所示: # hardware_platform.rb Facter.add("hardware_platform") do
# hardware_platform.rb
Facter.add("hardware_platform") do
setcode do
Facter::Util::Resolution.exec('/bin/uname -i')
end
end
我想我应该这样运行它:
# ruby hardware_platform.rb
但当我这样做时,我会得到以下错误:
hardware_platform.rb:3: uninitialized constant Facter (NameError)
有人知道这里可能出了什么问题吗?在我继续前进之前,我需要克服这些
谢谢您可能在脚本顶部缺少了一个
要求的“facter”
。还可以通过运行gem install facter
来验证facter gem是否已安装。您可能在脚本顶部缺少所需的“facter”
。另外,如果您在puppet将查找的ruby lib目录以外的任何地方测试此代码,请通过运行gem install facter
验证facter gem是否已安装,然后首先设置RUBYLIB。
e、 g.在目录名下测试,创建lib/ruby/facter/hardware\u platform.rb
然后你就可以
export RUBYLIB=/path/to/dir/lib/ruby
然后,你就可以跑了
facter hardware_platform
这会给你一个正确的结果
正如@lucas_clemente所说,您还需要检查系统中是否安装了facter。如果您使用的是yum,只需使用
yum list facter
如果已安装,则会产生类似的结果;如果未安装,则会显示回购协议中存在的版本:
facter.x86_64 1:1.6.12-2.el5 installed
如果您在puppet将查找的ruby lib目录之外的任何地方测试此代码,那么首先设置RUBYLIB。 e、 g.在目录名下测试,创建lib/ruby/facter/hardware\u platform.rb 然后你就可以
export RUBYLIB=/path/to/dir/lib/ruby
然后,你就可以跑了
facter hardware_platform
这会给你一个正确的结果
正如@lucas_clemente所说,您还需要检查系统中是否安装了facter。如果您使用的是yum,只需使用
yum list facter
如果已安装,则会产生类似的结果;如果未安装,则会显示回购协议中存在的版本:
facter.x86_64 1:1.6.12-2.el5 installed
谢谢你的回复。我必须执行上述操作,并将RUBYLIB=/path/to/dir/lib/ruby导出到@iamauser下面指定的位置,以使其正常工作。感谢您的回复。我必须执行上面的操作,并将RUBYLIB=/path/to/dir/lib/ruby导出到@iamauser下面指定的位置,以使其正常工作。