summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifests/devel.pp5
-rw-r--r--manifests/init.pp72
-rw-r--r--manifests/mysql.pp7
-rw-r--r--manifests/postgres.pp6
-rw-r--r--manifests/shadow.pp6
-rw-r--r--manifests/shadow/base.pp6
-rw-r--r--manifests/shadow/debian.pp8
7 files changed, 110 insertions, 0 deletions
diff --git a/manifests/devel.pp b/manifests/devel.pp
new file mode 100644
index 00000000..7068a74a
--- /dev/null
+++ b/manifests/devel.pp
@@ -0,0 +1,5 @@
+# install ruby header files and rake
+class ruby::devel {
+ include ruby
+ ensure_packages($ruby::ruby_dev)
+}
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 00000000..8d8ae48e
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,72 @@
+# Class: ruby
+#
+# This class installs Ruby
+#
+# Parameters:
+#
+# version: (default installed)
+# Set the version of Ruby to install
+#
+# Sample Usage:
+#
+# For a standard install using the latest ruby, simply do:
+#
+# class { 'ruby': }
+#
+# On Debian this is equivilant to
+# $ apt-get install ruby
+#
+# To install a specific version of ruby, simply do:
+#
+# class { 'ruby':
+# ruby_version => '1.8.7',
+# }
+#
+# Supported versions: 1.8, 1.8.7, 1.9, 1.9.1, 1.9.3
+#
+# To install the development files, you can do:
+#
+# class { 'ruby': install_dev => true }
+
+class ruby (
+ $ruby_version = '',
+ $version = 'installed',
+ $install_dev = false
+)
+{
+
+ case $::operatingsystem {
+ 'redhat', 'suse': {
+ $ruby_package='ruby'
+ $ruby_dev='ruby-devel'
+ }
+ 'debian', 'ubuntu': {
+ case $ruby_version {
+ '1.8', '1.8.7': {
+ $ruby_package = 'ruby1.8'
+ $ruby_dev = [ 'ruby1.8-dev', 'rake' ]
+ }
+ '1.9.1': {
+ $ruby_package = 'ruby1.9.1'
+ $ruby_dev = [ 'ruby1.9.1-dev', 'rake' ]
+ }
+ '1.9', '1.9.3': {
+ $ruby_package = 'ruby1.9.3'
+ $ruby_dev = [ 'ruby-dev', 'rake' ]
+ }
+ default: {
+ $ruby_package = 'ruby'
+ $ruby_dev = [ 'ruby-dev', 'rake' ]
+ }
+ }
+ }
+ }
+
+ package{ $ruby_package:
+ ensure => $version,
+ }
+
+ if $install_dev {
+ ensure_packages($ruby_dev)
+ }
+}
diff --git a/manifests/mysql.pp b/manifests/mysql.pp
new file mode 100644
index 00000000..2e894789
--- /dev/null
+++ b/manifests/mysql.pp
@@ -0,0 +1,7 @@
+class ruby::mysql {
+ include ruby
+ package{'ruby-mysql':
+ ensure => present,
+ require => Package['ruby'],
+ }
+}
diff --git a/manifests/postgres.pp b/manifests/postgres.pp
new file mode 100644
index 00000000..ec0e253a
--- /dev/null
+++ b/manifests/postgres.pp
@@ -0,0 +1,6 @@
+class ruby::postgres {
+ include ruby
+ package{'ruby-postgres':
+ ensure => installed,
+ }
+}
diff --git a/manifests/shadow.pp b/manifests/shadow.pp
new file mode 100644
index 00000000..43f1aeab
--- /dev/null
+++ b/manifests/shadow.pp
@@ -0,0 +1,6 @@
+class ruby::shadow {
+ case $::operatingsystem {
+ debian,ubuntu: { include ruby::shadow::debian }
+ default: { include ruby::shadow::base }
+ }
+}
diff --git a/manifests/shadow/base.pp b/manifests/shadow/base.pp
new file mode 100644
index 00000000..af8c5c92
--- /dev/null
+++ b/manifests/shadow/base.pp
@@ -0,0 +1,6 @@
+class ruby::shadow::base {
+ require ::ruby
+ package{'ruby-shadow':
+ ensure => installed,
+ }
+}
diff --git a/manifests/shadow/debian.pp b/manifests/shadow/debian.pp
new file mode 100644
index 00000000..8182b9b1
--- /dev/null
+++ b/manifests/shadow/debian.pp
@@ -0,0 +1,8 @@
+class ruby::shadow::debian inherits ruby::shadow::base {
+ Package['ruby-shadow']{
+ name => $::lsbdistcodename ? {
+ 'wheezy' => 'libshadow-ruby1.8',
+ default => 'ruby-shadow',
+ }
+ }
+}