2012-11-13 41 views
2

如果我錯過了某些東西,並且已經得到解答,我已搜索此網站和Google,但我無法找到任何內容,開始。傀儡自定義事實 - 未初始化的常量Facter(NameError)

我正在運行Ruby 1.8和Puppet 2.7。我對這兩種都很陌生,但在過去的幾周裏我已經和木偶做了相當多的工作,觸摸木頭而不把我的網站放下:)

我現在想寫一些自定義事實。我一直在使用Puppet documentation site上的指令進行實驗。我已經寫了如下一個hardware_platform.rb:

# 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) 

有人知道這裏可能會出現什麼問題嗎?我需要讓過去這之前,我可以繼續......

感謝

回答

1

如果您要在puppet將查找的ruby lib目錄以外的任何位置測試此代碼,請先設置RUBYLIB。 例如下迪爾的名字測試/路徑/到/目錄,創建的lib /紅寶石/ facter/hardware_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 
3

你就錯失了一個require 'facter'在腳本的頂部。還要通過運行gem install facter來驗證是否安裝了外部寶石。

+0

感謝響應。我必須這樣做,然後按照以下@iamauser指定的方式導出RUBYLIB =/path/to/dir/lib/ruby​​以使其工作。 – ticktockhouse

+0

這對我來說雖然:) – krisdigitx

相關問題