2016-05-10 88 views
0

在一個盒子上,我得到了jdk的x32和x64版本,並將JAVA_HOME指向了x64。如何在puppet上搜索文件夾路徑?

這在大部分時間都很好,但有些程序需要使用x32位jdk。其中之一是GO.CD構建代理,它使用環境變量來執行此操作。

現在的問題是,我需要弄清楚如何找到這個路徑,但我真的不知道如何通過木偶腳本(也許使用紅寶石?)找到這個。

因此在這裏:)

回答

0

問題您可以編寫Ruby代碼查找路徑和創建事實路店價值。 假設您正在系統上搜索'jdk1.7_72'文件夾路徑。 這裏是例子:

  1. 下創建{} moudule_name /lib/facter/jdk_path.rb
  2. 複製下面的內容在文件紅寶石文件:

需要 'facter'

Facter.add(:jdk_path)do

setcode do 
     filepath = `find -L/-name "jdk1.7_72*" -type d -print -quit` 

     if filepath.to_s.empty? then jdk_path = 'unknown' 
     else 
      jdk_path = filepath 
     end 
end 

end

  1. 在代理上運行puppet(sudo puppet agent --test)。
  2. 在座席'sudo puppet facter -p jdk_path'上運行命令。 輸出應該是jdk的路徑。
  3. 現在你可以在你的木偶代碼中使用變量'jdk_path'。

注:

  • 如果你想用默認拿起第一個路徑,然後使用命令:

    找到-L/-name 「JDK *」 型d -print -QUIT

  • 如果要拿起所有的路徑,然後使用命令:

    找到-L/-name 「JDK *」 型ð-print

相關問題