-
Notifications
You must be signed in to change notification settings - Fork 103
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'],
}
}