poolparty 0.2.6 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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=[]) {