Как установить переменную среды на сервере с марионеткой?

Я начинаю использовать марионетку в своем текущем проекте, и у меня возникают некоторые проблемы.

Я использую рецепт для установки jruby, но я хочу установить переменную среды (в данном случае JRUBY_HOME и изменить PATH, чтобы включить JRUBY_HOME/bin) после завершения установки jruby.

Вот рецепт:

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?


person razenha    schedule 15.10.2012    source источник
comment
Для кого вы хотите установить эту переменную среды? Все пользователи или конкретный пользователь приложения? Кроме того, что это за операционная система?   -  person itsbruce    schedule 17.10.2012


Ответы (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
person razenha    schedule 24.10.2012