ruby - 如何使用puppet在服务器上设置环境变量?

标签 ruby jruby environment-variables production-environment 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 添加到 PATH 的最佳方法是什么?

最佳答案

解决了:

# 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

关于ruby - 如何使用puppet在服务器上设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888499/

相关文章:

java - 如何从 JRuby 获取 Java 接口(interface)的类型正确的 ruby​​ 实现?

java - Eclipse:将环境变量用于外部 jar 位置

javascript - .env 变量在 React JS 应用程序中返回未定义

windows - 在操作系统级别更改后更新 IntelliJ 环境变量

ruby - 获取当前 ruby​​ 进程内存使用情况

ruby - 深度哈希反转算法(应该是 ruby )

java - 将 ArrayList 作为 RubyArray 传递给 Ruby

windows - 在Logstash安装期间无法找到jruby

ruby Dir.entries 不识别特殊字符

ruby - 如何从此 Ruby 函数中删除重复项?