puppet/ruby/manifests/init.pp

155 lines
3.6 KiB
Puppet

# Install rubygems.
#
class ruby::rubygems {
tag("bootstrap")
require gnu::gcc
require gnu::make
package { "ruby-devel":
ensure => installed,
name => $::operatingsystem ? {
"ubuntu" => regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'ruby\1-dev'),
default => "ruby-devel",
},
}
package { "rubygems":
ensure => installed,
require => Package["ruby-devel"],
}
}
# Install activerecord.
#
class ruby::activerecord {
case $::operatingsystem {
"centos","redhat": {
require yum::repo::puppetlabs::dependencies
$package = "rubygem-activerecord"
}
"debian": {
$package = regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libactiverecord-ruby\1')
}
"ubuntu": {
if versioncmp($::operatingsystemrelease, "12.04") >= 0 {
$package = regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libactiverecord-ruby\1')
} else {
$package = undef
}
}
default: {
$package = "rubygem-activerecord"
}
}
if $package {
package { "rubygem-activerecord":
ensure => installed,
name => $package,
}
}
}
# Install mysql ruby bindings.
#
class ruby::mysql {
package { "ruby-mysql":
ensure => installed,
name => $::operatingsystem ? {
"debian" => regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libmysql-ruby\1'),
"ubuntu" => regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libmysql-ruby\1'),
default => "ruby-mysql",
},
}
}
# Install rails.
#
class ruby::rails {
case $::operatingsystem {
"centos","redhat": {
if $::operatingsystemrelease =~ /^[1-5]/ {
package { "rubygem-rails":
ensure => installed,
}
} else {
require ruby::rubygems
package { "rubygem-rails":
ensure => "2.3.17",
name => "rails",
provider => "gem",
}
}
}
default: {
package { "rubygem-rails":
ensure => installed,
name => $::operatingsystem ? {
"debian" => "rails",
"ubuntu" => "rails",
"openbsd" => "ruby-rails",
default => "rubygem-rails",
},
}
}
}
}
# Install rrd ruby bindings.
#
class ruby::rrd {
case $::operatingsystem {
"centos","redhat": {
$package = $::operatingsystemrelease ? {
/^[1-5]/ => "ruby-RRDtool",
default => "rrdtool-ruby",
}
}
"debian","ubuntu": {
$package = regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'librrd-ruby\1')
}
"openbsd": {
$package = "ruby-rrd"
}
default: {
$packaage = "ruby-RRDtool"
}
}
package { "ruby-rrd":
ensure => installed,
name => $package,
}
}
# Install sqlite3 ruby bindings.
#
class ruby::sqlite3 {
package { "rubygem-sqlite3-ruby":
ensure => installed,
name => $::operatingsystem ? {
"debian" => regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libsqlite3-ruby\1'),
"ubuntu" => regsubst($::rubyversion, '^([0-9]+\.[0-9]+)\..*', 'libsqlite3-ruby\1'),
"openbsd" => "ruby-sqlite3",
default => "rubygem-sqlite3-ruby",
},
}
}