This repository has been archived by the owner on May 27, 2019. It is now read-only.
/
init.pp
76 lines (71 loc) · 2.74 KB
/
init.pp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
class ruby($version = "1.9.3-p327") {
rubyinstall { "$version": }
}
define rubyinstall {
package {
"build-essential":
ensure => present;
"libssl-dev":
ensure => present;
"libreadline6":
ensure => present;
"libreadline6-dev":
ensure => present;
"zlib1g":
ensure => present;
"zlib1g-dev":
ensure => present;
"curl":
ensure => present;
"rake":
ensure => present
}
exec { "ruby-build-install":
command => "wget -qO- https://github.com/sstephenson/ruby-build/tarball/master | tar xzv && mv /tmp/sstephenson-ruby-build* /opt/ruby-build",
cwd => "/tmp",
creates => "/opt/ruby-build",
require => [
Package["curl"],
Package["rake"],
Package["build-essential"],
Package["libssl-dev"],
Package["libreadline6"],
Package["libreadline6-dev"],
Package["zlib1g"],
Package["zlib1g-dev"]
],
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"]
}
exec { "ruby-install-$version":
command => "/opt/ruby-build/bin/ruby-build $version /opt/ruby-$version",
creates => "/opt/ruby-$version",
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"],
require => Exec["ruby-build-install"],
timeout => 0
}
exec { "alternatives-ruby-$version":
command => "update-alternatives --quiet --install /usr/bin/ruby ruby /opt/ruby-$version/bin/ruby 10 --slave /usr/bin/irb irb /opt/ruby-$version/bin/irb && update-alternatives --quiet --set ruby /opt/ruby-$version/bin/ruby",
unless => "test /usr/bin/ruby -ef /opt/ruby-$version/bin/ruby && test /usr/bin/irb -ef /opt/ruby-$version/bin/irb",
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"],
require => Exec["ruby-install-$version"]
}
exec { "alternatives-gem-$version":
command => "update-alternatives --quiet --install /usr/bin/gem gem /opt/ruby-$version/bin/gem 10 && update-alternatives --quiet --set gem /opt/ruby-$version/bin/gem",
unless => "test /usr/bin/gem -ef /opt/ruby-$version/bin/gem",
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"],
require => Exec["alternatives-ruby-$version"]
}
exec { "gem-install-bundler-$version":
command => "gem install bundler",
unless => "gem list | grep bundler",
timeout => "-1",
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"],
require => Exec["alternatives-gem-$version"]
}
exec { "alternatives-bundle-$version":
command => "update-alternatives --quiet --install /usr/bin/bundle bundle /opt/ruby-$version/bin/bundle 10 && update-alternatives --quiet --set bundle /opt/ruby-$version/bin/bundle",
unless => "test /usr/bin/bundle -ef /opt/ruby-$version/bin/bundle",
path => ["/usr/sbin", "/usr/bin", "/sbin", "/bin"],
require => Exec["gem-install-bundler-$version"]
}
}