With the latest version of the Puppet RVM module it is even easier to install multiple versions of Ruby
# install rubies from binaries Rvm_system_ruby { ensure => present, build_opts => ['--binary'], } # ensure rvm doesn't timeout finding binary rubies # the umask line is the default content when installing rvm if file does not exist file { '/etc/rvmrc': content => 'umask u=rwx,g=rwx,o=rx export rvm_max_time_flag=20', mode => '0664', before => Class['rvm'], } class { 'rvm': } rvm::system_user { 'vagrant': } rvm_system_ruby { 'ruby-1.9.3': default_use => true; 'ruby-2.0.0':; 'jruby':; }
Hiera can also be used to define what rubies to install, making the Puppet code even less verbose
... class { 'rvm': } # rvm::system_user no longer needed # rvm_system_ruby no longer needed
The equivalent hiera yaml configuration to the previous example
rvm::system_rubies: '1.9': default_use: true '2.0': {} 'jruby-1.7': {} rvm::system_users: - vagrant