【问题标题】:How to set an environment variable on a server with puppet?如何使用 puppet 在服务器上设置环境变量?
【发布时间】:2012-10-05 00:09:13
【问题描述】:

我开始在当前项目中使用 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 的最佳方法是什么?

【问题讨论】:

  • 您希望为谁设置此环境变量?所有用户还是特定应用程序用户?另外,这是什么操作系统?

标签: ruby jruby environment-variables production-environment puppet


【解决方案1】:

解决了:

# 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

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2020-05-25
    相关资源
    最近更新 更多