簡體   English   中英

人偶自定義事實-未初始化的常數Facter(NameError)

[英]Puppet custom facts - uninitialized constant Facter (NameError)

非常抱歉,如果我錯過了什么,並且已經回答了,我已經搜索了該站點和Google,但是無論如何都找不到任何東西。

我正在運行Ruby 1.8和Puppet 2.7。 我對這兩者都是新手,但是在過去的幾周中,我與Puppet進行了大量工作,在不降低網站質量的情況下進行接觸:)

我現在想寫一些習慣性的事實。 我一直在嘗試在Puppet文檔站點上找到的說明。 我寫了一個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)

有人知道這里可能出什么問題嗎? 我需要克服這個問題才能繼續前進...

謝謝

您可能在腳本頂部缺少require 'facter' 還可以通過運行gem install facter驗證是否安裝了facter gem。

如果要在p所要查找的ruby lib目錄之外的任何地方測試此代碼,請首先設置RUBYLIB。 例如,以目錄名/ path / to / dir進行測試 ,創建lib / ruby​​ / 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM