From 6c78a8f79d630b7a875068a3b309642e9cfe9052 Mon Sep 17 00:00:00 2001 From: Andrew Tomaka Date: Tue, 1 Apr 2014 12:02:45 -0400 Subject: [PATCH] Create, install, and start basic rails app --- manifests/final.pp | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/manifests/final.pp b/manifests/final.pp index 3456d12..a4e6c55 100644 --- a/manifests/final.pp +++ b/manifests/final.pp @@ -29,6 +29,54 @@ class { '::mysql::server': } # install nginx class { 'nginx': } +# install rails +package { 'rails': + provider => 'gem', +} + +# add rails depends +package { ['libsqlite3-dev', 'build-essential', 'nodejs']: + before => Exec['install rails app'] +} + +# add rails user and application +user { 'rails': + ensure => present, + groups => ['sudo'], + managehome => true, + shell => '/bin/bash', +} +exec { 'create rails app': + command => 'rails new welcome', + user => 'rails', + environment => ['HOME=/home/rails'], + path => '/usr/bin:/usr/local/bin', + cwd => '/home/rails', + creates => '/home/rails/welcome', + require => [ + Package['rails'], + User['rails'], + ], +} +exec { 'install rails app': + command => 'bundle install --path vendor/bundle', + user => 'rails', + environment => ['HOME=/home/rails'], + path => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', + cwd => '/home/rails/welcome', + unless => 'bundle check', + require => Exec['create rails app'], + notify => Exec['start rails app'], +} +exec { 'start rails app': + command => 'rails server -d', + user => 'rails', + environment => ['HOME=/home/rails'], + path => '/usr/bin:/usr/local/bin', + cwd => '/home/rails/welcome', + refreshonly => true, +} + # A working firewall using iptables or another Linux firewall resources { 'firewall': purge => true,