Index: modules/ruby/manifests/init.pp |
diff --git a/modules/ruby/manifests/init.pp b/modules/ruby/manifests/init.pp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2f28e1a2f729cd25374c5b97d6e2f086e1826731 |
--- /dev/null |
+++ b/modules/ruby/manifests/init.pp |
@@ -0,0 +1,48 @@ |
+# == Class: ruby |
+# |
+# Perform a custom Ruby installation based on the ruby-install script, |
+# using /usr/local as installation prefix. |
+# |
+# === Parameters: |
+# |
+# [*version*] |
+# The Ruby version to clone and build. |
+# |
+# === Examples: |
+# |
+# class {'ruby': |
+# version => '2.2.0', |
+# } |
+# |
+class ruby( |
+ $version = '2.1.5', |
+) { |
+ |
+ $ruby_install_source_url = 'https://github.com/postmodern/ruby-install.git' |
+ $ruby_install_source_dir = "/root/ruby-install" |
+ |
+ Package { |
+ ensure => 'installed', |
+ } |
+ |
+ Exec { |
+ logoutput => true, |
+ path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', |
+ } |
+ |
+ if !defined(Package['git']) { |
+ package {'git': } |
+ } |
+ |
+ exec {'ruby-clone-ruby-install': |
+ command => shellquote('git', 'clone', $ruby_install_source_url, $ruby_install_source_dir), |
+ creates => $ruby_install_source_dir, |
+ } |
+ -> |
+ exec {'ruby-execute-ruby-install': |
+ command => shellquote("$ruby_install_source_dir/bin/ruby-install", '--system', 'ruby', $ruby_version), |
+ creates => "/usr/local/bin/ruby", |
+ } |
+ |
+ Exec['ruby-clone-ruby-install'] <- Package['git'] |
+} |