|
| 1 | +$ar_databases = ['activerecord_unittest', 'activerecord_unittest2'] |
| 2 | +$as_vagrant = 'sudo -u vagrant -H bash -l -c' |
| 3 | +$home = '/home/vagrant' |
| 4 | + |
1 | 5 | Exec {
|
2 | 6 | path => ['/usr/sbin', '/usr/bin', '/sbin', '/bin']
|
3 | 7 | }
|
4 | 8 |
|
5 |
| -$ar_databases = ['activerecord_unittest', 'activerecord_unittest2'] |
6 |
| -$as_vagrant = 'sudo -u vagrant -H bash -l -c' |
| 9 | +# --- Preinstall Stage --------------------------------------------------------- |
7 | 10 |
|
8 |
| -# Make sure apt-get -y update runs before anything else. |
9 | 11 | stage { 'preinstall':
|
10 | 12 | before => Stage['main']
|
11 | 13 | }
|
12 | 14 |
|
13 | 15 | class apt_get_update {
|
14 | 16 | exec { 'apt-get -y update':
|
15 |
| - user => 'root', |
16 |
| - unless => 'test -e /home/vagrant/.rvm' |
| 17 | + unless => "test -e ${home}/.rvm" |
17 | 18 | }
|
18 | 19 | }
|
19 | 20 | class { 'apt_get_update':
|
20 | 21 | stage => preinstall
|
21 | 22 | }
|
22 | 23 |
|
23 |
| -class install_sqlite3 { |
24 |
| - package { 'sqlite3': |
25 |
| - ensure => installed; |
26 |
| - } |
| 24 | +# --- SQLite ------------------------------------------------------------------- |
27 | 25 |
|
28 |
| - package { 'libsqlite3-dev': |
29 |
| - ensure => installed; |
30 |
| - } |
| 26 | +package { ['sqlite3', 'libsqlite3-dev']: |
| 27 | + ensure => installed; |
31 | 28 | }
|
32 |
| -class { 'install_sqlite3': } |
| 29 | + |
| 30 | +# --- MySQL -------------------------------------------------------------------- |
33 | 31 |
|
34 | 32 | class install_mysql {
|
35 | 33 | class { 'mysql': }
|
|
60 | 58 | }
|
61 | 59 | class { 'install_mysql': }
|
62 | 60 |
|
| 61 | +# --- PostgreSQL --------------------------------------------------------------- |
| 62 | + |
63 | 63 | class install_postgres {
|
64 | 64 | class { 'postgresql': }
|
65 | 65 |
|
|
88 | 88 | }
|
89 | 89 | class { 'install_postgres': }
|
90 | 90 |
|
91 |
| -class install_core_packages { |
92 |
| - if !defined(Package['build-essential']) { |
93 |
| - package { 'build-essential': |
94 |
| - ensure => installed |
95 |
| - } |
96 |
| - } |
| 91 | +# --- Memcached ---------------------------------------------------------------- |
97 | 92 |
|
98 |
| - if !defined(Package['git-core']) { |
99 |
| - package { 'git-core': |
100 |
| - ensure => installed |
101 |
| - } |
102 |
| - } |
| 93 | +class { 'memcached': } |
| 94 | + |
| 95 | +# --- Packages ----------------------------------------------------------------- |
| 96 | + |
| 97 | +package { 'curl': |
| 98 | + ensure => installed |
103 | 99 | }
|
104 |
| -class { 'install_core_packages': } |
105 | 100 |
|
106 |
| -class install_curl { |
107 |
| - package { 'curl': |
108 |
| - ensure => installed |
109 |
| - } |
| 101 | +package { 'build-essential': |
| 102 | + ensure => installed |
110 | 103 | }
|
111 |
| -class { 'install_curl': } |
112 | 104 |
|
113 |
| -class install_rvm { |
114 |
| - exec { "${as_vagrant} 'curl -L https://get.rvm.io | bash -s master'": |
115 |
| - creates => '/home/vagrant/.rvm', |
116 |
| - require => Class['install_curl'] |
117 |
| - } |
| 105 | +package { 'git-core': |
| 106 | + ensure => installed |
118 | 107 | }
|
119 |
| -class { 'install_rvm': } |
120 | 108 |
|
121 |
| -class install_ruby { |
122 |
| - exec { "${as_vagrant} 'rvm install 1.9.3 --latest-binary && rvm use 1.9.3 --default'": |
123 |
| - creates => '/home/vagrant/.rvm/bin/ruby', |
124 |
| - require => Class['install_rvm'] |
125 |
| - } |
| 109 | +# Nokogiri dependencies. |
| 110 | +package { ['libxml2', 'libxml2-dev', 'libxslt1-dev']: |
| 111 | + ensure => installed |
126 | 112 | }
|
127 |
| -class { 'install_ruby': } |
128 | 113 |
|
129 |
| -class install_bundler { |
130 |
| - exec { "${as_vagrant} 'gem install bundler --no-rdoc --no-ri'": |
131 |
| - creates => '/home/vagrant/.rvm/bin/bundle', |
132 |
| - require => Class['install_ruby'] |
133 |
| - } |
| 114 | +# ExecJS runtime. |
| 115 | +package { 'nodejs': |
| 116 | + ensure => installed |
134 | 117 | }
|
135 |
| -class { 'install_bundler': } |
136 | 118 |
|
137 |
| -class install_nokogiri_dependencies { |
138 |
| - package { ['libxml2', 'libxml2-dev', 'libxslt1-dev']: |
139 |
| - ensure => installed |
140 |
| - } |
| 119 | +# --- Ruby --------------------------------------------------------------------- |
| 120 | + |
| 121 | +exec { 'install_rvm': |
| 122 | + command => "${as_vagrant} 'curl -L https://get.rvm.io | bash -s master'", |
| 123 | + creates => "${home}/.rvm", |
| 124 | + require => Package['curl'] |
141 | 125 | }
|
142 |
| -class { 'install_nokogiri_dependencies': } |
143 | 126 |
|
144 |
| -class install_execjs_runtime { |
145 |
| - package { 'nodejs': |
146 |
| - ensure => installed |
147 |
| - } |
| 127 | +exec { 'install_ruby': |
| 128 | + command => "${as_vagrant} 'rvm install 1.9.3 --latest-binary && rvm use 1.9.3 --default'", |
| 129 | + creates => "${home}/.rvm/bin/ruby", |
| 130 | + require => Exec['install_rvm'] |
148 | 131 | }
|
149 |
| -class { 'install_execjs_runtime': } |
150 | 132 |
|
151 |
| -class { 'memcached': } |
| 133 | +exec { "${as_vagrant} 'gem install bundler --no-rdoc --no-ri'": |
| 134 | + creates => "${home}/.rvm/bin/bundle", |
| 135 | + require => Exec['install_ruby'] |
| 136 | +} |
0 commit comments