如何在puppet上搜索文件夹路径?

时间:2016-05-10 11:15:49

标签: puppet

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

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

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

因此这里的问题:)

1 个答案:

答案 0 :(得分:0)

您可以编写ruby代码来查找路径并创建存储路径值的事实。 假设您正在搜索' jdk1.7_72'系统上的文件夹路径。 这是一个例子:

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

    要求' 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. 在代理上运行木偶(sudo puppet agent --test)。
    2. 在代理' sudo puppet facter -p jdk_path'上运行命令。 输出应该是jdk的路径。
    3. 现在你可以使用变量' jdk_path'在您的木偶代码中。
    4. 注意:

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

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

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

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