Skip to content

Example Class for Ruby Apps

jasongill edited this page Sep 16, 2012 · 1 revision

Here's an example of a simple class which will automatically create an apps user with home directory /opt/apps/ and deploy rbenv, ruby-1.9.4-p194, and the rbenv-bundler plugin to the newly created user.

class myrubyapp {

	group { "apps": 
	  ensure => 'present',
	}

	user { "apps":
	  ensure => 'present',
	  gid => "apps",
	  managehome => false,
	  home => "/opt/apps",
	  password => "!!",
	  require => Group["apps"],
	}

	file { "/opt/apps/":
	  ensure => 'directory',
	  owner => "apps",
	  group => "apps",
	  mode => '700',
	  require => User["apps"],
	}

	file { "/opt/apps/.bash_profile":
	  ensure => 'present',
	  owner => 'apps',
	  group => 'apps',
	  mode => '700',
	  content => '. ~/.bashrc',
	  require => File['/opt/apps/'],
	}	

	rbenv::install { 'apps':
	  home => '/opt/apps',
	  require => User['apps'],
	}

	rbenv::compile { 'apps/1.9.3-p194':
	  user => 'apps',
	  home => '/opt/apps',
	  ruby => '1.9.3-p194',
	  global => true,
	  require => Rbenv::Install['apps'],
	}

	rbenv::plugin { "rbenv-bundler":
	  user => 'apps',
	  home => '/opt/apps',
	  source => 'git://github.com/carsomyr/rbenv-bundler.git',
	  require => Rbenv::Install['apps'],
	}

}
Clone this wiki locally