3

我开始在当前项目中使用puppet,并且遇到一些问题。如何使用puppet在服务器上设置环境变量?

我正在使用一个配方来安装jruby,但是我想在它完成安装jruby之后设置一个环境变量(在这种情况下,JRUBY_HOME并修改PATH以包含JRUBY_HOME/bin)。

这里的食谱:

class jruby { 
    $jruby_home = "/opt/jruby" 


    exec { "download_jruby": 
    command => "wget http://jruby.org.s3.amazonaws.com/downloads/1.7.0.RC2/jruby-bin-1.7.0.RC2.tar.gz", 
    path => $path,  
    timeout => 0, 
    unless => "ls /opt | grep jruby-1.7.0", 
    require => Package["openjdk-7-jre-headless"] 
    }     

    exec { "unpack_jruby" : 
    command => "tar -zxf jruby-bin-1.7.0.RC2.tar.gz -C /opt", 
    path => $path, 
    creates => "${jruby_home}-1.7.0.RC2", 
    require => Exec["download_jruby"] 
    }        

    file { $jruby_home: 
    ensure => link, 
    target => "${jruby_home}-1.7.0.RC2", 
    require => Exec["unpack_jruby"] 
    }       

} 

那么,有什么补充的最佳途径的/ opt/JRuby的作为JRUBY_HOME然后添加JRUBY_HOME/bin添加到路径?

+0

对于谁做你想这个环境变量设置?所有用户或特定应用程序用户?另外,这是什么操作系统? – itsbruce

+0

所有用户,linux – razenha

回答

5

解决它:

# init.pp 
$jruby_sh = "/etc/profile.d/jruby.sh" 
file { $jruby_sh: 
    ensure => present, 
    source => "puppet:///modules/jruby/jruby.sh", 
    owner => "root", 
    group => "root", 
    mode => 644, 
    require => File[$jruby_home] 
} 

# jruby.sh 
export JRUBY_HOME=/opt/jruby 
export PATH=$PATH:$JRUBY_HOME/bin 
+1

这个命令为root用户设置路径?或为所有用户? – Burhan

相关问题