84 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Puppet
		
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Puppet
		
	
	
| if $ruby_values == undef { $ruby_values = hiera_hash('ruby', false) }
 | |
| 
 | |
| include puphpet::params
 | |
| 
 | |
| if hash_key_true($ruby_values, 'versions') and count($ruby_values['versions']) > 0 {
 | |
|   $rvm_has_default = false
 | |
| 
 | |
|   rvm_dotfile { 'do': }
 | |
| 
 | |
|   create_resources(install_ruby, $ruby_values['versions'])
 | |
| }
 | |
| 
 | |
| define install_ruby (
 | |
|   $version,
 | |
|   $default = false,
 | |
|   $bundler = false,
 | |
|   $gems    = []
 | |
| ) {
 | |
| 
 | |
|   $default_true = value_true($default)
 | |
|   $bundler_true = value_true($bundle)
 | |
| 
 | |
|   if value_true($version) {
 | |
|     rvm_system_ruby { $version:
 | |
|         default_use => $default_true,
 | |
|         ensure      => present,
 | |
|         require     => File_line['rvm_autoupdate_flag=0 >> ~/.rvmrc'],
 | |
|     }
 | |
| 
 | |
|     if $bundler_true == true {
 | |
|       $gems_merged = concat($gems, 'bundler')
 | |
|     } else {
 | |
|       $gems_merged = $gems
 | |
|     }
 | |
| 
 | |
|     if count($gems_merged) > 0 {
 | |
|       each( $gems_merged ) |$key, $gem| {
 | |
|         $gem_array = split($gem, '@')
 | |
| 
 | |
|         if count($gem_array) == 2 {
 | |
|           $gem_ensure = $gem_array[1]
 | |
|         } else {
 | |
|           $gem_ensure = present
 | |
|         }
 | |
| 
 | |
|         rvm_gem { $gem_array[0]:
 | |
|           name         => $gem_array[0],
 | |
|           ruby_version => $version,
 | |
|           ensure       => $gem_ensure,
 | |
|           require      => Rvm_system_ruby[$version]
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| define rvm_dotfile {
 | |
|   if $::ssh_username != 'root' {
 | |
|     file { "/home/${::ssh_username}/.rvmrc":
 | |
|       ensure => present,
 | |
|       owner  => $::ssh_username,
 | |
|       require => User[$::ssh_username]
 | |
|     }
 | |
|     file_line { 'rvm_autoupdate_flag=0 >> ~/.rvmrc':
 | |
|       ensure  => present,
 | |
|       line    => 'rvm_autoupdate_flag=0',
 | |
|       path    => "/home/${::ssh_username}/.rvmrc",
 | |
|       require => File["/home/${::ssh_username}/.rvmrc"],
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   file { "/root/.rvmrc":
 | |
|     ensure => present,
 | |
|     owner  => 'root',
 | |
|   }
 | |
|   file_line { 'rvm_autoupdate_flag=0 >> /root/.rvmrc':
 | |
|     ensure  => present,
 | |
|     line    => 'rvm_autoupdate_flag=0',
 | |
|     path    => "/root/.rvmrc",
 | |
|     require => File["/root/.rvmrc"],
 | |
|   }
 | |
| }
 |