如何在木偶上搜索文件夹路径



在一个盒子上,我得到了jdk的x32和x64版本,JAVA_HOME指向x64版本。

这在大多数情况下都很好,但有些程序需要使用x32位的jdk。其中之一是GO.CD构建代理,它使用环境变量来完成此操作

现在的问题是,我需要弄清楚如何找到这条路,但我真的不知道如何通过木偶脚本找到它(也许使用ruby?)。

因此这里的问题是:)

您可以编写ruby代码来查找路径,并创建事实来存储路径的值。假设您正在系统中搜索"jdk1.7_72"文件夹路径。以下是示例:

  1. 在{moudule_name}/lib/facter/jdk_path.rb下创建ruby文件
  2. 在文件中复制以下内容:

需要"facter"

Facter.add(:jdk_path)执行

 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  

结束

  1. 在代理上运行puppet(sudo puppet代理--测试)
  2. 在代理"sudo puppet facter-p jdk_path"上运行命令。输出应该是jdk的路径
  3. 现在,您可以在木偶代码中使用变量"jdk_path"

注:

  • 如果您想在默认情况下选择第一条路径,请使用命令:

    find-L/-name"jdk*"-type d-print-退出

  • 如果要拾取所有路径,请使用命令:

    find-L/-name"jdk*"-type d-print

最新更新