poolparty 0.2.6 → 0.2.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. data/Manifest.txt +123 -4
  2. data/PostInstall.txt +2 -1
  3. data/bin/cloud +16 -7
  4. data/bin/cloud-provision +9 -5
  5. data/bin/cloud-run +19 -0
  6. data/bin/cloud-ssh +2 -7
  7. data/bin/cloud-start +2 -1
  8. data/bin/pool +3 -3
  9. data/bin/server-build-messenger +20 -0
  10. data/bin/server-fire-cmd +14 -0
  11. data/bin/server-get-load +29 -0
  12. data/bin/server-list-active +25 -0
  13. data/bin/server-list-responding +24 -0
  14. data/bin/server-rerun +24 -0
  15. data/bin/server-start-master +27 -0
  16. data/bin/server-start-node +33 -0
  17. data/config/requirements.rb +1 -1
  18. data/erl_crash.dump +8409 -0
  19. data/lib/erlang/messenger/Emakefile +1 -0
  20. data/lib/erlang/messenger/Makefile +15 -0
  21. data/lib/erlang/messenger/README +5 -0
  22. data/lib/erlang/messenger/Rakefile +60 -0
  23. data/lib/erlang/messenger/control +11 -0
  24. data/lib/erlang/messenger/ebin/master.app +19 -0
  25. data/lib/erlang/messenger/ebin/master_app.beam +0 -0
  26. data/lib/erlang/messenger/ebin/node.app +19 -0
  27. data/lib/erlang/messenger/ebin/node_app.beam +0 -0
  28. data/lib/erlang/messenger/ebin/packager.app +19 -0
  29. data/lib/erlang/messenger/ebin/pm_client.beam +0 -0
  30. data/lib/erlang/messenger/ebin/pm_cluster.beam +0 -0
  31. data/lib/erlang/messenger/ebin/pm_event_handler.beam +0 -0
  32. data/lib/erlang/messenger/ebin/pm_master.beam +0 -0
  33. data/lib/erlang/messenger/ebin/pm_master_rel-0.1.rel +1 -0
  34. data/lib/erlang/messenger/ebin/pm_master_supervisor.beam +0 -0
  35. data/lib/erlang/messenger/ebin/pm_node.beam +0 -0
  36. data/lib/erlang/messenger/ebin/pm_node_rel-0.1.rel +1 -0
  37. data/lib/erlang/messenger/ebin/pm_node_supervisor.beam +0 -0
  38. data/lib/erlang/messenger/ebin/pm_packager.beam +0 -0
  39. data/lib/erlang/messenger/ebin/utils.beam +0 -0
  40. data/lib/erlang/messenger/lib/eunit/AUTHORS +2 -0
  41. data/lib/erlang/messenger/lib/eunit/CHANGELOG +14 -0
  42. data/lib/erlang/messenger/lib/eunit/COPYING +504 -0
  43. data/lib/erlang/messenger/lib/eunit/Makefile +28 -0
  44. data/lib/erlang/messenger/lib/eunit/NOTES +276 -0
  45. data/lib/erlang/messenger/lib/eunit/README +3 -0
  46. data/lib/erlang/messenger/lib/eunit/doc/edoc-info +3 -0
  47. data/lib/erlang/messenger/lib/eunit/doc/erlang.png +0 -0
  48. data/lib/erlang/messenger/lib/eunit/doc/eunit.html +172 -0
  49. data/lib/erlang/messenger/lib/eunit/doc/index.html +17 -0
  50. data/lib/erlang/messenger/lib/eunit/doc/modules-frame.html +12 -0
  51. data/lib/erlang/messenger/lib/eunit/doc/overview-summary.html +984 -0
  52. data/lib/erlang/messenger/lib/eunit/doc/overview.edoc +980 -0
  53. data/lib/erlang/messenger/lib/eunit/doc/packages-frame.html +11 -0
  54. data/lib/erlang/messenger/lib/eunit/doc/stylesheet.css +55 -0
  55. data/lib/erlang/messenger/lib/eunit/ebin/autoload.beam +0 -0
  56. data/lib/erlang/messenger/lib/eunit/ebin/code_monitor.beam +0 -0
  57. data/lib/erlang/messenger/lib/eunit/ebin/eunit.app +21 -0
  58. data/lib/erlang/messenger/lib/eunit/ebin/eunit.appup +1 -0
  59. data/lib/erlang/messenger/lib/eunit/ebin/eunit.beam +0 -0
  60. data/lib/erlang/messenger/lib/eunit/ebin/eunit_autoexport.beam +0 -0
  61. data/lib/erlang/messenger/lib/eunit/ebin/eunit_data.beam +0 -0
  62. data/lib/erlang/messenger/lib/eunit/ebin/eunit_lib.beam +0 -0
  63. data/lib/erlang/messenger/lib/eunit/ebin/eunit_proc.beam +0 -0
  64. data/lib/erlang/messenger/lib/eunit/ebin/eunit_serial.beam +0 -0
  65. data/lib/erlang/messenger/lib/eunit/ebin/eunit_server.beam +0 -0
  66. data/lib/erlang/messenger/lib/eunit/ebin/eunit_striptests.beam +0 -0
  67. data/lib/erlang/messenger/lib/eunit/ebin/eunit_test.beam +0 -0
  68. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tests.beam +0 -0
  69. data/lib/erlang/messenger/lib/eunit/ebin/eunit_tty.beam +0 -0
  70. data/lib/erlang/messenger/lib/eunit/ebin/file_monitor.beam +0 -0
  71. data/lib/erlang/messenger/lib/eunit/examples/eunit_examples.erl +339 -0
  72. data/lib/erlang/messenger/lib/eunit/examples/fib.erl +19 -0
  73. data/lib/erlang/messenger/lib/eunit/examples/tests.txt +1 -0
  74. data/lib/erlang/messenger/lib/eunit/include/eunit.hrl +313 -0
  75. data/lib/erlang/messenger/lib/eunit/src/Makefile +46 -0
  76. data/lib/erlang/messenger/lib/eunit/src/autoload.erl +388 -0
  77. data/lib/erlang/messenger/lib/eunit/src/code_monitor.erl +243 -0
  78. data/lib/erlang/messenger/lib/eunit/src/eunit.app.src +21 -0
  79. data/lib/erlang/messenger/lib/eunit/src/eunit.appup.src +1 -0
  80. data/lib/erlang/messenger/lib/eunit/src/eunit.erl +196 -0
  81. data/lib/erlang/messenger/lib/eunit/src/eunit_autoexport.erl +102 -0
  82. data/lib/erlang/messenger/lib/eunit/src/eunit_data.erl +798 -0
  83. data/lib/erlang/messenger/lib/eunit/src/eunit_internal.hrl +48 -0
  84. data/lib/erlang/messenger/lib/eunit/src/eunit_lib.erl +682 -0
  85. data/lib/erlang/messenger/lib/eunit/src/eunit_proc.erl +552 -0
  86. data/lib/erlang/messenger/lib/eunit/src/eunit_serial.erl +157 -0
  87. data/lib/erlang/messenger/lib/eunit/src/eunit_server.erl +340 -0
  88. data/lib/erlang/messenger/lib/eunit/src/eunit_striptests.erl +64 -0
  89. data/lib/erlang/messenger/lib/eunit/src/eunit_test.erl +334 -0
  90. data/lib/erlang/messenger/lib/eunit/src/eunit_tests.erl +45 -0
  91. data/lib/erlang/messenger/lib/eunit/src/eunit_tty.erl +272 -0
  92. data/lib/erlang/messenger/lib/eunit/src/file_monitor.erl +409 -0
  93. data/lib/erlang/messenger/lib/eunit/sys.config +9 -0
  94. data/lib/erlang/messenger/lib/eunit/vsn.mk +1 -0
  95. data/lib/erlang/messenger/pm_master_rel-0.1.boot +0 -0
  96. data/lib/erlang/messenger/pm_master_rel-0.1.script +242 -0
  97. data/lib/erlang/messenger/pm_node_rel-0.1.boot +0 -0
  98. data/lib/erlang/messenger/pm_node_rel-0.1.script +242 -0
  99. data/lib/erlang/messenger/src/master_app.erl +39 -0
  100. data/lib/erlang/messenger/src/node_app.erl +39 -0
  101. data/lib/erlang/messenger/src/pm_client.erl +19 -0
  102. data/lib/erlang/messenger/src/pm_cluster.erl +57 -0
  103. data/lib/erlang/messenger/src/pm_event_handler.erl +21 -0
  104. data/lib/erlang/messenger/src/pm_master.erl +118 -0
  105. data/lib/erlang/messenger/src/pm_master_supervisor.erl +40 -0
  106. data/lib/erlang/messenger/src/pm_node.erl +124 -0
  107. data/lib/erlang/messenger/src/pm_node_supervisor.erl +40 -0
  108. data/lib/erlang/messenger/src/pm_packager.erl +73 -0
  109. data/lib/erlang/messenger/src/utils.erl +38 -0
  110. data/lib/poolparty/base_packages/haproxy.rb +9 -2
  111. data/lib/poolparty/base_packages/heartbeat.rb +40 -28
  112. data/lib/poolparty/base_packages/poolparty.rb +39 -16
  113. data/lib/poolparty/base_packages/ruby.rb +2 -3
  114. data/lib/poolparty/config/allowed_commands.yml +1 -0
  115. data/lib/poolparty/core/array.rb +5 -2
  116. data/lib/poolparty/core/hash.rb +16 -2
  117. data/lib/poolparty/core/string.rb +9 -2
  118. data/lib/poolparty/core/symbol.rb +2 -2
  119. data/lib/poolparty/dependency_resolutions/base.rb +12 -0
  120. data/lib/poolparty/dependency_resolutions/puppet.rb +49 -0
  121. data/lib/poolparty/exceptions/UnacceptableCommand.rb +5 -0
  122. data/lib/poolparty/helpers/console.rb +3 -2
  123. data/lib/poolparty/helpers/display.rb +3 -3
  124. data/lib/poolparty/helpers/messenger.rb +29 -0
  125. data/lib/poolparty/helpers/optioner.rb +6 -2
  126. data/lib/poolparty/helpers/provisioner_base.rb +18 -11
  127. data/lib/poolparty/helpers/provisioners/master.rb +24 -22
  128. data/lib/poolparty/helpers/provisioners/slave.rb +8 -4
  129. data/lib/poolparty/modules/definable_resource.rb +1 -0
  130. data/lib/poolparty/modules/file_writer.rb +11 -10
  131. data/lib/poolparty/modules/method_missing_sugar.rb +1 -1
  132. data/lib/poolparty/modules/pretty_printer.rb +11 -11
  133. data/lib/poolparty/modules/resourcing_dsl.rb +61 -0
  134. data/lib/poolparty/monitors/base_monitor.rb +17 -3
  135. data/lib/poolparty/monitors/monitors/cpu_monitor.rb +15 -0
  136. data/lib/poolparty/monitors/monitors/memory_monitor.rb +23 -0
  137. data/lib/poolparty/net/remote_instance.rb +6 -1
  138. data/lib/poolparty/net/remoter.rb +23 -5
  139. data/lib/poolparty/net/remoter_base.rb +5 -1
  140. data/lib/poolparty/plugins/git.rb +22 -24
  141. data/lib/poolparty/pool/base.rb +22 -6
  142. data/lib/poolparty/pool/cloud.rb +28 -4
  143. data/lib/poolparty/pool/custom_resource.rb +6 -6
  144. data/lib/poolparty/pool/loggable.rb +3 -0
  145. data/lib/poolparty/pool/pool.rb +1 -1
  146. data/lib/poolparty/pool/resource.rb +58 -94
  147. data/lib/poolparty/pool/resources/class_package.rb +6 -6
  148. data/lib/poolparty/pool/resources/conditional.rb +5 -1
  149. data/lib/poolparty/pool/resources/exec.rb +6 -2
  150. data/lib/poolparty/pool/resources/gem.rb +22 -8
  151. data/lib/poolparty/pool/resources/remote_file.rb +5 -1
  152. data/lib/poolparty/pool/resources/symlink.rb +25 -0
  153. data/lib/poolparty/pool/resources/variable.rb +8 -7
  154. data/lib/poolparty/pool/tmp/.ppkeys +3 -0
  155. data/lib/poolparty/pool/tmp/happydayz +1 -0
  156. data/lib/poolparty/pool/tmp/install_master.sh +33 -0
  157. data/lib/poolparty/pool/tmp/pool.spec +11 -0
  158. data/lib/poolparty/pool/tmp/poolparty.pp +600 -0
  159. data/lib/poolparty/pool/tmp/tc-instances.list +1 -0
  160. data/lib/poolparty/templates/cib.xml +54 -0
  161. data/lib/poolparty/templates/ha.cf +12 -3
  162. data/lib/poolparty/templates/haproxy.conf +3 -3
  163. data/lib/poolparty/templates/haresources +3 -0
  164. data/lib/poolparty/templates/poolparty.monitor +14 -0
  165. data/lib/poolparty/templates/puppet.conf +3 -4
  166. data/lib/poolparty/version.rb +1 -1
  167. data/lib/poolparty.rb +9 -6
  168. data/poolparty.gemspec +7 -6
  169. data/setup.rb +3 -3
  170. data/spec/poolparty/bin/console_spec.rb +1 -1
  171. data/spec/poolparty/core/array_spec.rb +5 -0
  172. data/spec/poolparty/core/hash_spec.rb +19 -1
  173. data/spec/poolparty/core/string_spec.rb +13 -0
  174. data/spec/poolparty/dependency_resolutions/base_spec.rb +11 -0
  175. data/spec/poolparty/helpers/messenger_spec.rb +14 -0
  176. data/spec/poolparty/helpers/optioner_spec.rb +2 -1
  177. data/spec/poolparty/helpers/provisioner_base_spec.rb +1 -1
  178. data/spec/poolparty/helpers/provisioners/master_spec.rb +2 -2
  179. data/spec/poolparty/helpers/provisioners/slave_spec.rb +3 -3
  180. data/spec/poolparty/modules/file_writer_spec.rb +9 -0
  181. data/spec/poolparty/monitors/base_monitor_spec.rb +19 -0
  182. data/spec/poolparty/monitors/monitors/cpu_monitor_spec.rb +17 -0
  183. data/spec/poolparty/net/remote_instance_spec.rb +6 -1
  184. data/spec/poolparty/net/remote_spec.rb +51 -42
  185. data/spec/poolparty/net/remoter_spec.rb +2 -1
  186. data/spec/poolparty/plugins/git_spec.rb +2 -2
  187. data/spec/poolparty/pool/base_spec.rb +20 -2
  188. data/spec/poolparty/pool/cloud_spec.rb +30 -1
  189. data/spec/poolparty/pool/custom_resource_spec.rb +2 -2
  190. data/spec/poolparty/pool/plugin_spec.rb +4 -4
  191. data/spec/poolparty/pool/pool_spec.rb +1 -1
  192. data/spec/poolparty/pool/resource_spec.rb +66 -0
  193. data/spec/poolparty/pool/resources/gem_spec.rb +29 -3
  194. data/spec/poolparty/pool/resources/symlink_spec.rb +22 -0
  195. data/spec/poolparty/pool/resources/variable_spec.rb +4 -0
  196. data/spec/poolparty/spec_helper.rb +5 -0
  197. data/tasks/cloud.rake +0 -54
  198. data/tasks/development.rake +0 -12
  199. data/tasks/ec2.rake +1 -16
  200. data/tasks/instance.rake +0 -61
  201. data/test_manifest.pp +286 -166
  202. data/website/index.html +5 -5
  203. data/website/index.txt +3 -3
  204. metadata +137 -8
  205. data/bin/pool-start-monitor +0 -1
  206. data/lib/erlang/eb_server.erl +0 -27
  207. data/lib/poolparty/plugins/gem_package.rb +0 -17
  208. data/spec/poolparty/modules/tmp/willy/nilly.rb +0 -1
data/test_manifest.pp CHANGED
@@ -6,43 +6,64 @@ case $hostname {
6
6
  master : {
7
7
  # Variables
8
8
 
9
- $ha_nodenames = [ 'master', 'node1' ]
10
- $ha_node_ips = [ '192.168.0.1', '192.168.0.1' ]
9
+ $ha_nodenames = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'name')
10
+ $ha_node_ips = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'ip')
11
+ $ha_timeout = '5s'
11
12
  $ha_port = '80'
12
13
 
14
+ # exec
15
+
16
+
17
+ exec {
18
+ "heartbeat-update-cib":
19
+ command => '/usr/sbin/cibadmin -R -x /etc/ha.d/cib.xml',
20
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH',
21
+ refreshonly => true
22
+ }
23
+
24
+
25
+ # package
26
+
27
+
28
+ # heartbeat-2
29
+ class heartbeat-2 {
30
+
13
31
  # remotefile
14
32
 
15
33
 
16
34
  file {
17
35
  "/etc/ha.d/ha.cf":
18
- content => template("ha.cf"),
19
- require => Package["heartbeat-2"],
20
- mode => 444,
21
36
  ensure => 'present',
22
- owner => 'root',
23
- notify => Service["heartbeat"]
37
+ require => Package['heartbeat-2'],
38
+ mode => 444,
39
+ name => '/etc/ha.d/ha.cf',
40
+ notify => Service["heartbeat"],
41
+ content => template("ha.cf"),
42
+ owner => 'root'
24
43
  }
25
44
 
26
45
 
27
46
  file {
28
47
  "/etc/ha.d/authkeys":
29
- content => template("authkeys"),
30
- require => Package["heartbeat-2"],
31
- mode => 400,
32
48
  ensure => 'present',
33
- owner => 'root',
34
- notify => Service["heartbeat"]
49
+ require => Package['heartbeat-2'],
50
+ mode => 400,
51
+ name => '/etc/ha.d/authkeys',
52
+ notify => Service["heartbeat"],
53
+ content => template("authkeys"),
54
+ owner => 'root'
35
55
  }
36
56
 
37
57
 
38
58
  file {
39
59
  "/etc/ha.d/cib.xml":
40
- content => template("cib.xml"),
41
- require => Package["heartbeat-2"],
42
- mode => 444,
43
60
  ensure => 'present',
44
- owner => 'root',
45
- notify => Exec["heartbeat-update-cib"]
61
+ require => Package['heartbeat-2'],
62
+ mode => 444,
63
+ name => '/etc/ha.d/cib.xml',
64
+ notify => Exec["heartbeat-update-cib"],
65
+ content => template("cib.xml"),
66
+ owner => 'root'
46
67
  }
47
68
 
48
69
 
@@ -51,31 +72,35 @@ $ha_port = '80'
51
72
 
52
73
  service {
53
74
  "heartbeat":
54
- hasstatus => true,
55
75
  enable => true,
76
+ hasstatus => true,
56
77
  ensure => 'running',
78
+ require => Package['heartbeat-2'],
57
79
  name => 'heartbeat'
58
80
  }
59
81
 
82
+ }
60
83
 
84
+ include heartbeat-2
85
+ package {
86
+ "heartbeat-2":
87
+ ensure => 'present',
88
+ name => 'heartbeat-2'
89
+ }
90
+ }
91
+ default : {}
92
+ }
93
+ # $hostname == master
94
+ case $hostname {
95
+ master : {
61
96
  # exec
62
97
 
63
98
 
64
99
  exec {
65
- "heartbeat-update-cib":
66
- refreshonly => true,
100
+ "update pem for heartbeat":
101
+ command => 'scp /etc/puppet/ssl/ca/ca_crl.pem root@192.168.0.1:/etc/puppet/ssl/ca',
67
102
  path => '/usr/bin:/bin:/usr/local/bin:$PATH',
68
- command => '/usr/sbin/cibadmin -R -x /etc/ha.d/cib.xml'
69
- }
70
-
71
-
72
- # package
73
-
74
-
75
- package {
76
- "heartbeat-2":
77
- ensure => 'installed',
78
- name => 'heartbeat-2'
103
+ refreshonly => true
79
104
  }
80
105
  }
81
106
  default : {}
@@ -86,8 +111,8 @@ master : {
86
111
  # Variables
87
112
 
88
113
  $name_haproxy = 'test'
89
- $nodenames_haproxy = [ 'master', 'node1' ]
90
- $node_ips_haproxy = [ '192.168.0.1', '192.168.0.1' ]
114
+ $nodenames_haproxy = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'name')
115
+ $node_ips_haproxy = generate('/usr/bin/env', '/var/lib/gems/1.8/bin/server-list-active', '-c', 'ip')
91
116
  $ports_haproxy = [ '80' ]
92
117
  $forwarding_port = '8080'
93
118
  $proxy_mode = 'http'
@@ -97,41 +122,13 @@ $proxy_mode = 'http'
97
122
 
98
123
  file {
99
124
  "/etc/haproxy.cfg":
100
- content => template("haproxy.conf"),
125
+ ensure => 'present',
101
126
  require => Package["haproxy"],
102
127
  mode => 644,
103
- ensure => 'present',
104
- owner => 'root',
105
- notify => Service["haproxy"]
106
- }
107
-
108
-
109
- # service
110
-
111
-
112
- service {
113
- "sysklogd":
114
- enable => true,
115
- ensure => 'running',
116
- name => 'sysklogd'
117
- }
118
-
119
-
120
- service {
121
- "haproxy":
122
- enable => true,
123
- ensure => 'running',
124
- name => 'haproxy'
125
- }
126
-
127
-
128
- # package
129
-
130
-
131
- package {
132
- "haproxy":
133
- ensure => 'installed',
134
- name => 'haproxy'
128
+ name => '/etc/haproxy.cfg',
129
+ notify => Service["haproxy"],
130
+ content => template("haproxy.conf"),
131
+ owner => 'root'
135
132
  }
136
133
 
137
134
 
@@ -160,6 +157,60 @@ $proxy_mode = 'http'
160
157
  notify => Service["sysklogd"],
161
158
  ensure => 'present'
162
159
  }
160
+
161
+
162
+ # package
163
+
164
+
165
+ package {
166
+ "haproxy":
167
+ ensure => 'installed',
168
+ name => 'haproxy'
169
+ }
170
+
171
+
172
+ # service
173
+
174
+
175
+ service {
176
+ "sysklogd":
177
+ enable => true,
178
+ ensure => [ 'running', 'running' ],
179
+ name => 'sysklogd'
180
+ }
181
+
182
+
183
+ service {
184
+ "haproxy":
185
+ enable => true,
186
+ ensure => 'running',
187
+ name => 'haproxy'
188
+ }
189
+ }
190
+ default : {}
191
+ }
192
+ # $hostname == master
193
+ case $hostname {
194
+ master : {
195
+ # exec
196
+
197
+
198
+ exec {
199
+ ". /etc/profile && server-start-master":
200
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH'
201
+ }
202
+
203
+
204
+ # cron
205
+
206
+
207
+ cron {
208
+ "":
209
+ command => '. /etc/profile && which cloud-maintain | /bin/sh',
210
+ ensure => 'present',
211
+ minute => '*/3',
212
+ user => 'root'
213
+ }
163
214
  }
164
215
  default : {}
165
216
  }
@@ -178,6 +229,17 @@ include haproxy
178
229
  # ruby
179
230
  class ruby {
180
231
 
232
+ # call_function
233
+
234
+ line {
235
+ '/etc/profile_line' :
236
+ file => '/etc/profile',
237
+ line => 'export PATH=$PATH:/var/lib/gems/1.8/bin:/sbin',
238
+
239
+ ensure => 'present'
240
+ }
241
+
242
+
181
243
  # package
182
244
 
183
245
 
@@ -208,24 +270,6 @@ class ruby {
208
270
  name => 'ruby1.8'
209
271
  }
210
272
 
211
-
212
- package {
213
- "rubygems":
214
- ensure => 'present',
215
- name => 'rubygems'
216
- }
217
-
218
-
219
- # call_function
220
-
221
- line {
222
- '/etc/profile_line' :
223
- file => '/etc/profile',
224
- line => 'export PATH=$PATH:/var/lib/gems/1.8/bin/',
225
-
226
- ensure => 'present'
227
- }
228
-
229
273
  }
230
274
 
231
275
  include ruby
@@ -237,17 +281,17 @@ class poolparty {
237
281
 
238
282
  host {
239
283
  "master":
240
- ip => '192.168.0.1',
241
284
  ensure => 'present',
242
- name => 'master'
285
+ name => 'master',
286
+ ip => '192.168.0.1'
243
287
  }
244
288
 
245
289
 
246
290
  host {
247
291
  "node1":
248
- ip => '192.168.0.1',
249
292
  ensure => 'present',
250
- name => 'node1'
293
+ name => 'node1',
294
+ ip => '192.168.0.1'
251
295
  }
252
296
 
253
297
 
@@ -255,10 +299,12 @@ class poolparty {
255
299
 
256
300
 
257
301
  cron {
258
- "poolparty":
259
- minute => '*/5',
260
- command => 'cloud-maintain',
261
- user => 'puppet'
302
+ "puppetd runner":
303
+ command => '. /etc/profile && /usr/sbin/puppetd --onetime --no-daemonize --logdest syslog --server master 2>&1',
304
+ ensure => 'present',
305
+ name => 'puppetd runner',
306
+ minute => [ 0, 15, 30, 45 ],
307
+ user => 'root'
262
308
  }
263
309
 
264
310
 
@@ -272,147 +318,165 @@ class poolparty {
272
318
  }
273
319
 
274
320
 
321
+ package {
322
+ "erlang-dev":
323
+ ensure => 'present',
324
+ name => 'erlang-dev'
325
+ }
326
+
327
+
328
+ package {
329
+ "erlang-src":
330
+ ensure => 'present',
331
+ name => 'erlang-src'
332
+ }
333
+
334
+
335
+ # rubygems
336
+ class rubygems {
337
+
275
338
  # gempackage
276
339
 
277
340
 
278
- # open4
279
- class open4 {
341
+ # logging
342
+ class logging {
280
343
 
281
344
  # exec
282
345
 
283
346
 
284
347
  exec {
285
- "gem-package-open4":
286
- unless => 'gem list --local open4 | grep open4 ',
348
+ "logging":
349
+ command => 'gem install -y --no-ri --no-rdoc logging',
287
350
  require => Package['rubygems'],
288
351
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
289
- command => 'gem install -y --no-ri --no-rdoc open4',
290
- cwd => '/tmp'
352
+ cwd => '/tmp',
353
+ unless => 'gem list --local logging | grep logging '
291
354
  }
292
355
 
293
356
  }
294
357
 
295
- include open4
358
+ include logging
296
359
 
297
360
 
298
- # parsetree
299
- class parsetree {
361
+ # xml-simple
362
+ class xml-simple {
300
363
 
301
364
  # exec
302
365
 
303
366
 
304
367
  exec {
305
- "gem-package-parsetree":
306
- unless => 'gem list --local parsetree | grep parsetree ',
368
+ "xml-simple":
369
+ command => 'gem install -y --no-ri --no-rdoc xml-simple',
307
370
  require => Package['rubygems'],
308
371
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
309
- command => 'gem install -y --no-ri --no-rdoc parsetree',
310
- cwd => '/tmp'
372
+ cwd => '/tmp',
373
+ unless => 'gem list --local xml-simple | grep xml-simple '
311
374
  }
312
375
 
313
- }
314
376
 
315
- include parsetree
377
+ # gempackage
316
378
 
317
379
 
318
- # rubyinline
319
- class rubyinline {
380
+ # grempe-amazon-ec2
381
+ class grempe-amazon-ec2 {
320
382
 
321
383
  # exec
322
384
 
323
385
 
324
386
  exec {
325
- "gem-package-rubyinline":
326
- unless => 'gem list --local rubyinline | grep rubyinline ',
327
- require => Package['rubygems'],
387
+ "grempe-amazon-ec2":
388
+ command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com grempe-amazon-ec2',
389
+ require => Exec['xml-simple'],
328
390
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
329
- command => 'gem install -y --no-ri --no-rdoc rubyinline',
330
- cwd => '/tmp'
391
+ cwd => '/tmp',
392
+ unless => 'gem list --local grempe-amazon-ec2 | grep grempe-amazon-ec2 '
331
393
  }
332
394
 
333
395
  }
334
396
 
335
- include rubyinline
397
+ include grempe-amazon-ec2
336
398
 
399
+ }
337
400
 
338
- # activesupport
339
- class activesupport {
401
+ include xml-simple
402
+
403
+
404
+ # rake
405
+ class rake {
340
406
 
341
407
  # exec
342
408
 
343
409
 
344
410
  exec {
345
- "gem-package-activesupport":
346
- unless => 'gem list --local activesupport | grep activesupport ',
411
+ "rake":
412
+ command => 'gem install -y --no-ri --no-rdoc rake',
347
413
  require => Package['rubygems'],
348
414
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
349
- command => 'gem install -y --no-ri --no-rdoc activesupport',
350
- cwd => '/tmp'
415
+ cwd => '/tmp',
416
+ unless => 'gem list --local rake | grep rake '
351
417
  }
352
418
 
353
419
  }
354
420
 
355
- include activesupport
421
+ include rake
356
422
 
357
423
 
358
- # logging
359
- class logging {
424
+ # hoe
425
+ class hoe {
360
426
 
361
427
  # exec
362
428
 
363
429
 
364
430
  exec {
365
- "gem-package-logging":
366
- unless => 'gem list --local logging | grep logging ',
431
+ "hoe":
432
+ command => 'gem install -y --no-ri --no-rdoc hoe',
367
433
  require => Package['rubygems'],
368
434
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
369
- command => 'gem install -y --no-ri --no-rdoc logging',
370
- cwd => '/tmp'
435
+ cwd => '/tmp',
436
+ unless => 'gem list --local hoe | grep hoe '
371
437
  }
372
438
 
373
- }
374
439
 
375
- include logging
440
+ # gempackage
376
441
 
377
442
 
378
- # hoe
379
- class hoe {
443
+ # open4
444
+ class open4 {
380
445
 
381
446
  # exec
382
447
 
383
448
 
384
449
  exec {
385
- "gem-package-hoe":
386
- unless => 'gem list --local hoe | grep hoe ',
387
- require => Package['rubygems'],
450
+ "open4":
451
+ command => 'gem install -y --no-ri --no-rdoc open4',
452
+ require => Exec['hoe'],
388
453
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
389
- command => 'gem install -y --no-ri --no-rdoc hoe',
390
- cwd => '/tmp'
454
+ cwd => '/tmp',
455
+ unless => 'gem list --local open4 | grep open4 '
391
456
  }
392
457
 
393
458
  }
394
459
 
395
- include hoe
460
+ include open4
396
461
 
397
462
 
398
- # xml-simple
399
- class xml-simple {
463
+ # ParseTree
464
+ class parsetree {
400
465
 
401
466
  # exec
402
467
 
403
468
 
404
469
  exec {
405
- "gem-package-xml-simple":
406
- unless => 'gem list --local xml-simple | grep xml-simple ',
407
- require => Package['rubygems'],
470
+ "ParseTree":
471
+ command => 'gem install -y --no-ri --no-rdoc --version 2.2.0 ParseTree',
472
+ require => Exec['hoe'],
408
473
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
409
- command => 'gem install -y --no-ri --no-rdoc xml-simple',
410
- cwd => '/tmp'
474
+ cwd => '/tmp',
475
+ unless => 'gem list --local ParseTree | grep ParseTree | grep 2.2.0'
411
476
  }
412
477
 
413
- }
414
478
 
415
- include xml-simple
479
+ # gempackage
416
480
 
417
481
 
418
482
  # ruby2ruby
@@ -422,12 +486,12 @@ class ruby2ruby {
422
486
 
423
487
 
424
488
  exec {
425
- "gem-package-ruby2ruby":
426
- unless => 'gem list --local ruby2ruby | grep ruby2ruby ',
427
- require => Package['rubygems'],
428
- path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
489
+ "ruby2ruby":
429
490
  command => 'gem install -y --no-ri --no-rdoc ruby2ruby',
430
- cwd => '/tmp'
491
+ require => Exec['ParseTree'],
492
+ path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
493
+ cwd => '/tmp',
494
+ unless => 'gem list --local ruby2ruby | grep ruby2ruby '
431
495
  }
432
496
 
433
497
  }
@@ -435,24 +499,23 @@ class ruby2ruby {
435
499
  include ruby2ruby
436
500
 
437
501
 
438
- # grempe-amazon-ec2
439
- class grempe-amazon-ec2 {
502
+ # activesupport
503
+ class activesupport {
440
504
 
441
505
  # exec
442
506
 
443
507
 
444
508
  exec {
445
- "gem-package-grempe-amazon-ec2":
446
- unless => 'gem list --local grempe-amazon-ec2 | grep grempe-amazon-ec2 ',
447
- require => Package['rubygems'],
509
+ "activesupport":
510
+ command => 'gem install -y --no-ri --no-rdoc activesupport',
511
+ require => Exec['ParseTree'],
448
512
  path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
449
- command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com grempe-amazon-ec2',
450
- cwd => '/tmp'
513
+ cwd => '/tmp',
514
+ unless => 'gem list --local activesupport | grep activesupport '
451
515
  }
452
516
 
453
- }
454
517
 
455
- include grempe-amazon-ec2
518
+ # gempackage
456
519
 
457
520
 
458
521
  # auser-poolparty
@@ -462,12 +525,28 @@ class auser-poolparty {
462
525
 
463
526
 
464
527
  exec {
465
- "gem-package-auser-poolparty":
466
- unless => 'gem list --local auser-poolparty | grep auser-poolparty ',
467
- require => Package['rubygems'],
468
- path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
528
+ "build_messenger":
529
+ command => '. /etc/profile && server-build-messenger',
530
+ require => Exec['auser-poolparty'],
531
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH'
532
+ }
533
+
534
+
535
+ exec {
536
+ "start_node":
537
+ command => '. /etc/profile && server-start-node',
538
+ require => [ Exec['auser-poolparty'], Exec["build_messenger"] ],
539
+ path => '/usr/bin:/bin:/usr/local/bin:$PATH'
540
+ }
541
+
542
+
543
+ exec {
544
+ "auser-poolparty":
469
545
  command => 'gem install -y --no-ri --no-rdoc --source http://gems.github.com auser-poolparty',
470
- cwd => '/tmp'
546
+ require => Exec['activesupport'],
547
+ path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
548
+ cwd => '/tmp',
549
+ unless => 'gem list --local auser-poolparty | grep auser-poolparty '
471
550
  }
472
551
 
473
552
  }
@@ -476,6 +555,47 @@ include auser-poolparty
476
555
 
477
556
  }
478
557
 
558
+ include activesupport
559
+
560
+
561
+ # RubyInline
562
+ class rubyinline {
563
+
564
+ # exec
565
+
566
+
567
+ exec {
568
+ "RubyInline":
569
+ command => 'gem install -y --no-ri --no-rdoc RubyInline',
570
+ require => Exec['ParseTree'],
571
+ path => '/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin',
572
+ cwd => '/tmp',
573
+ unless => 'gem list --local RubyInline | grep RubyInline '
574
+ }
575
+
576
+ }
577
+
578
+ include RubyInline
579
+
580
+ }
581
+
582
+ include ParseTree
583
+
584
+ }
585
+
586
+ include hoe
587
+
588
+ }
589
+
590
+ include rubygems
591
+ package {
592
+ "rubygems":
593
+ ensure => 'present',
594
+ name => 'rubygems'
595
+ }
596
+
597
+ }
598
+
479
599
  include poolparty
480
600
  # Custom functions
481
601
  define line($file, $line, $ensure = 'present', $notify=[]) {