在一个盒子上,我得到了jdk的x32和x64版本,JAVA_HOME指向x64版本。
这在大多数情况下都很好,但有些程序需要使用x32位的jdk。其中之一是GO.CD构建代理,它使用环境变量来完成此操作
现在的问题是,我需要弄清楚如何找到这条路,但我真的不知道如何通过木偶脚本找到它(也许使用ruby?)。
因此这里的问题是:)
您可以编写ruby代码来查找路径,并创建事实来存储路径的值。假设您正在系统中搜索"jdk1.7_72"文件夹路径。以下是示例:
- 在{moudule_name}/lib/facter/jdk_path.rb下创建ruby文件
- 在文件中复制以下内容:
需要"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
结束
- 在代理上运行puppet(sudo puppet代理--测试)
- 在代理"sudo puppet facter-p jdk_path"上运行命令。输出应该是jdk的路径
- 现在,您可以在木偶代码中使用变量"jdk_path"
注:
-
如果您想在默认情况下选择第一条路径,请使用命令:
find-L/-name"jdk*"-type d-print-退出
-
如果要拾取所有路径,请使用命令:
find-L/-name"jdk*"-type d-print