puppet 0.24.5 → 0.24.6

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 (354) hide show
  1. data/CHANGELOG +206 -0
  2. data/Rakefile +53 -0
  3. data/bin/filebucket +0 -0
  4. data/bin/puppet +32 -11
  5. data/bin/puppetca +1 -0
  6. data/bin/puppetd +0 -0
  7. data/bin/puppetdoc +0 -0
  8. data/bin/puppetmasterd +0 -0
  9. data/bin/puppetrun +16 -8
  10. data/bin/ralsh +0 -0
  11. data/conf/debian/rules +0 -0
  12. data/conf/gentoo/init.d/puppetmaster +0 -0
  13. data/conf/osx/PackageInfo.plist +36 -0
  14. data/conf/osx/createpackage.sh +167 -0
  15. data/conf/osx/preflight +12 -0
  16. data/conf/redhat/client.init +1 -1
  17. data/conf/redhat/puppet.spec +34 -6
  18. data/conf/redhat/server.init +42 -7
  19. data/conf/redhat/server.sysconfig +22 -0
  20. data/conf/solaris/smf/svc-puppetd +0 -0
  21. data/conf/solaris/smf/svc-puppetmasterd +0 -0
  22. data/examples/etc/init.d/sleeper +0 -0
  23. data/examples/mac_dscl.pp +0 -0
  24. data/examples/mac_dscl_revert.pp +0 -0
  25. data/examples/mac_netinfo.pp +0 -0
  26. data/examples/mac_pkgdmg.pp +0 -0
  27. data/ext/bin/sleeper +0 -0
  28. data/ext/module_puppet +0 -0
  29. data/ext/nagios/check_puppet.rb +0 -0
  30. data/ext/passenger/README +63 -0
  31. data/ext/passenger/apache2.conf +29 -0
  32. data/ext/passenger/config.ru +40 -0
  33. data/ext/puppet-test +0 -0
  34. data/ext/puppetlast +6 -31
  35. data/ext/puppetstoredconfigclean.rb +87 -0
  36. data/install.rb +75 -20
  37. data/lib/puppet.rb +1 -1
  38. data/lib/puppet/daemon.rb +0 -0
  39. data/lib/puppet/defaults.rb +3 -7
  40. data/lib/puppet/external/base64.rb +0 -0
  41. data/lib/puppet/external/nagios.rb +0 -0
  42. data/lib/puppet/external/nagios/base.rb +0 -0
  43. data/lib/puppet/file_serving/fileset.rb +2 -2
  44. data/lib/puppet/file_serving/metadata.rb +3 -3
  45. data/lib/puppet/indirector/facts/facter.rb +3 -2
  46. data/lib/puppet/indirector/yaml.rb +10 -1
  47. data/lib/puppet/module.rb +36 -12
  48. data/lib/puppet/network/authstore.rb +0 -0
  49. data/lib/puppet/network/client/master.rb +12 -11
  50. data/lib/puppet/network/handler/filebucket.rb +0 -0
  51. data/lib/puppet/network/handler/fileserver.rb +38 -46
  52. data/lib/puppet/network/handler/master.rb +1 -1
  53. data/lib/puppet/network/handler/report.rb +0 -0
  54. data/lib/puppet/network/handler/resource.rb +0 -0
  55. data/lib/puppet/network/handler/runner.rb +0 -0
  56. data/lib/puppet/network/http_server/rack.rb +148 -0
  57. data/lib/puppet/network/rights.rb +0 -0
  58. data/lib/puppet/network/xmlrpc/client.rb +5 -5
  59. data/lib/puppet/node.rb +5 -9
  60. data/lib/puppet/node/environment.rb +1 -17
  61. data/lib/puppet/node/facts.rb +0 -0
  62. data/lib/puppet/parameter.rb +1 -28
  63. data/lib/puppet/parser/ast.rb +6 -0
  64. data/lib/puppet/parser/ast/arithmetic_operator.rb +41 -0
  65. data/lib/puppet/parser/ast/boolean_operator.rb +48 -0
  66. data/lib/puppet/parser/ast/collexpr.rb +6 -1
  67. data/lib/puppet/parser/ast/comparison_operator.rb +37 -0
  68. data/lib/puppet/parser/ast/minus.rb +23 -0
  69. data/lib/puppet/parser/ast/nop.rb +11 -0
  70. data/lib/puppet/parser/ast/not.rb +19 -0
  71. data/lib/puppet/parser/ast/resource_override.rb +23 -16
  72. data/lib/puppet/parser/ast/resource_reference.rb +10 -6
  73. data/lib/puppet/parser/ast/vardef.rb +2 -2
  74. data/lib/puppet/parser/collector.rb +2 -1
  75. data/lib/puppet/parser/functions.rb +7 -217
  76. data/lib/puppet/parser/functions/defined.rb +27 -0
  77. data/lib/puppet/parser/functions/fail.rb +4 -0
  78. data/lib/puppet/parser/functions/file.rb +21 -0
  79. data/lib/puppet/parser/functions/fqdn_rand.rb +15 -0
  80. data/lib/puppet/parser/functions/generate.rb +35 -0
  81. data/lib/puppet/parser/functions/include.rb +26 -0
  82. data/lib/puppet/parser/functions/realize.rb +14 -0
  83. data/lib/puppet/parser/functions/search.rb +7 -0
  84. data/lib/puppet/parser/functions/sha1.rb +6 -0
  85. data/lib/puppet/parser/functions/tag.rb +6 -0
  86. data/lib/puppet/parser/functions/tagged.rb +18 -0
  87. data/lib/puppet/parser/functions/template.rb +22 -0
  88. data/lib/puppet/parser/lexer.rb +15 -5
  89. data/lib/puppet/parser/parser.rb +1073 -715
  90. data/lib/puppet/parser/parser_support.rb +18 -13
  91. data/lib/puppet/parser/resource.rb +1 -1
  92. data/lib/puppet/parser/resource/param.rb +10 -2
  93. data/lib/puppet/parser/scope.rb +63 -5
  94. data/lib/puppet/parser/templatewrapper.rb +61 -15
  95. data/lib/puppet/property.rb +7 -1
  96. data/lib/puppet/property/keyvalue.rb +96 -0
  97. data/lib/puppet/property/list.rb +78 -0
  98. data/lib/puppet/provider/confine.rb +1 -1
  99. data/lib/puppet/provider/confine/variable.rb +10 -1
  100. data/lib/puppet/provider/cron/crontab.rb +0 -0
  101. data/lib/puppet/provider/mailalias/aliases.rb +0 -0
  102. data/lib/puppet/provider/maillist/mailman.rb +0 -0
  103. data/lib/puppet/provider/mount/parsed.rb +0 -0
  104. data/lib/puppet/provider/nameservice.rb +24 -39
  105. data/lib/puppet/provider/nameservice/directoryservice.rb +12 -3
  106. data/lib/puppet/provider/nameservice/netinfo.rb +12 -2
  107. data/lib/puppet/provider/nameservice/objectadd.rb +1 -10
  108. data/lib/puppet/provider/package/appdmg.rb +1 -1
  109. data/lib/puppet/provider/package/apple.rb +0 -0
  110. data/lib/puppet/provider/package/apt.rb +14 -21
  111. data/lib/puppet/provider/package/aptitude.rb +0 -0
  112. data/lib/puppet/provider/package/blastwave.rb +2 -0
  113. data/lib/puppet/provider/package/darwinport.rb +0 -0
  114. data/lib/puppet/provider/package/dpkg.rb +33 -51
  115. data/lib/puppet/provider/package/fink.rb +1 -1
  116. data/lib/puppet/provider/package/freebsd.rb +0 -0
  117. data/lib/puppet/provider/package/gem.rb +0 -0
  118. data/lib/puppet/provider/package/hpux.rb +46 -0
  119. data/lib/puppet/provider/package/openbsd.rb +0 -0
  120. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  121. data/lib/puppet/provider/package/portage.rb +3 -1
  122. data/lib/puppet/provider/package/ports.rb +3 -3
  123. data/lib/puppet/provider/package/rpm.rb +8 -1
  124. data/lib/puppet/provider/package/rug.rb +2 -2
  125. data/lib/puppet/provider/package/sun.rb +2 -0
  126. data/lib/puppet/provider/package/sunfreeware.rb +3 -0
  127. data/lib/puppet/provider/package/yum.rb +24 -17
  128. data/lib/puppet/provider/package/yumhelper.py +92 -11
  129. data/lib/puppet/provider/parsedfile.rb +0 -0
  130. data/lib/puppet/provider/port/parsed.rb +0 -0
  131. data/lib/puppet/provider/selboolean/getsetsebool.rb +47 -0
  132. data/lib/puppet/provider/selmodule/semodule.rb +143 -0
  133. data/lib/puppet/provider/service/base.rb +0 -0
  134. data/lib/puppet/provider/service/daemontools.rb +154 -0
  135. data/lib/puppet/provider/service/debian.rb +1 -1
  136. data/lib/puppet/provider/service/freebsd.rb +2 -0
  137. data/lib/puppet/provider/service/gentoo.rb +2 -0
  138. data/lib/puppet/provider/service/init.rb +0 -0
  139. data/lib/puppet/provider/service/redhat.rb +1 -1
  140. data/lib/puppet/provider/service/runit.rb +93 -0
  141. data/lib/puppet/provider/service/smf.rb +2 -0
  142. data/lib/puppet/provider/ssh_authorized_key/parsed.rb +7 -1
  143. data/lib/puppet/provider/sshkey/parsed.rb +0 -0
  144. data/lib/puppet/provider/user/hpux.rb +30 -0
  145. data/lib/puppet/provider/user/user_role_add.rb +156 -0
  146. data/lib/puppet/provider/user/useradd.rb +23 -14
  147. data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +17 -0
  148. data/lib/puppet/rails/database/schema.rb +0 -8
  149. data/lib/puppet/rails/resource.rb +6 -6
  150. data/lib/puppet/reference/configuration.rb +0 -7
  151. data/lib/puppet/reports.rb +0 -0
  152. data/lib/puppet/reports/rrdgraph.rb +3 -2
  153. data/lib/puppet/sslcertificates.rb +0 -0
  154. data/lib/puppet/sslcertificates/inventory.rb +3 -2
  155. data/lib/puppet/sslcertificates/support.rb +3 -0
  156. data/lib/puppet/transaction/report.rb +1 -7
  157. data/lib/puppet/transportable.rb +10 -7
  158. data/lib/puppet/type.rb +2110 -14
  159. data/lib/puppet/type/cron.rb +0 -0
  160. data/lib/puppet/type/exec.rb +0 -0
  161. data/lib/puppet/type/file.rb +12 -2
  162. data/lib/puppet/type/file/checksum.rb +4 -0
  163. data/lib/puppet/type/file/content.rb +0 -0
  164. data/lib/puppet/type/file/ensure.rb +0 -0
  165. data/lib/puppet/type/file/group.rb +30 -43
  166. data/lib/puppet/type/file/mode.rb +0 -0
  167. data/lib/puppet/type/file/owner.rb +0 -0
  168. data/lib/puppet/type/file/selcontext.rb +104 -0
  169. data/lib/puppet/type/file/source.rb +0 -0
  170. data/lib/puppet/type/file/type.rb +0 -0
  171. data/lib/puppet/type/filebucket.rb +0 -0
  172. data/lib/puppet/type/group.rb +0 -8
  173. data/lib/puppet/type/host.rb +0 -0
  174. data/lib/puppet/type/mailalias.rb +0 -0
  175. data/lib/puppet/type/maillist.rb +0 -0
  176. data/lib/puppet/type/mount.rb +0 -0
  177. data/lib/puppet/type/package.rb +2 -2
  178. data/lib/puppet/type/port.rb +0 -0
  179. data/lib/puppet/type/schedule.rb +0 -0
  180. data/lib/puppet/type/selboolean.rb +31 -0
  181. data/lib/puppet/type/selmodule.rb +54 -0
  182. data/lib/puppet/type/ssh_authorized_key.rb +3 -3
  183. data/lib/puppet/type/sshkey.rb +0 -0
  184. data/lib/puppet/type/tidy.rb +0 -0
  185. data/lib/puppet/type/user.rb +153 -137
  186. data/lib/puppet/type/yumrepo.rb +18 -2
  187. data/lib/puppet/type/zone.rb +5 -1
  188. data/lib/puppet/util.rb +7 -7
  189. data/lib/puppet/util/filetype.rb +7 -0
  190. data/lib/puppet/util/instance_loader.rb +0 -0
  191. data/lib/puppet/util/ldap/connection.rb +11 -1
  192. data/lib/puppet/util/ldap/manager.rb +1 -1
  193. data/lib/puppet/util/loadedfile.rb +0 -0
  194. data/lib/puppet/util/log.rb +42 -43
  195. data/lib/puppet/util/metric.rb +23 -9
  196. data/lib/puppet/util/posix.rb +69 -18
  197. data/lib/puppet/util/selinux.rb +139 -0
  198. data/lib/puppet/util/settings.rb +5 -7
  199. data/lib/puppet/util/user_attr.rb +21 -0
  200. data/test/certmgr/ca.rb +0 -0
  201. data/test/certmgr/certmgr.rb +0 -0
  202. data/test/certmgr/inventory.rb +0 -0
  203. data/test/certmgr/support.rb +0 -0
  204. data/test/data/providers/ssh_authorized_key/parsed/authorized_keys1 +3 -0
  205. data/test/data/snippets/append.pp +11 -0
  206. data/test/data/snippets/arithmetic_expression.pp +8 -0
  207. data/test/data/snippets/arraytrailingcomma.pp +3 -0
  208. data/test/data/snippets/emptyifelse.pp +9 -0
  209. data/test/data/snippets/funccomma.pp +5 -0
  210. data/test/data/snippets/ifexpression.rb +6 -0
  211. data/test/data/snippets/subclass_name_duplication.pp +0 -0
  212. data/test/executables/filebucket.rb +0 -0
  213. data/test/executables/puppetbin.rb +0 -0
  214. data/test/executables/puppetca.rb +0 -0
  215. data/test/executables/puppetd.rb +0 -0
  216. data/test/executables/puppetmasterd.rb +0 -0
  217. data/test/executables/puppetmodule.rb +0 -0
  218. data/test/language/ast.rb +0 -0
  219. data/test/language/ast/casestatement.rb +0 -0
  220. data/test/language/ast/resource.rb +0 -0
  221. data/test/language/ast/resource_reference.rb +0 -28
  222. data/test/language/ast/selector.rb +0 -0
  223. data/test/language/ast/variable.rb +0 -0
  224. data/test/language/functions.rb +91 -12
  225. data/test/language/parser.rb +21 -0
  226. data/test/language/resource.rb +0 -0
  227. data/test/language/scope.rb +28 -0
  228. data/test/language/snippets.rb +14 -0
  229. data/test/language/transportable.rb +0 -0
  230. data/test/lib/puppettest.rb +0 -0
  231. data/test/lib/puppettest/reporttesting.rb +0 -2
  232. data/test/lib/puppettest/runnable_test.rb +2 -0
  233. data/test/lib/puppettest/support/resources.rb +0 -0
  234. data/test/network/authconfig.rb +0 -0
  235. data/test/network/authorization.rb +0 -0
  236. data/test/network/authstore.rb +0 -0
  237. data/test/network/client/ca.rb +0 -0
  238. data/test/network/client/client.rb +0 -0
  239. data/test/network/client/dipper.rb +0 -0
  240. data/test/network/client/master.rb +2 -6
  241. data/test/network/client/resource.rb +0 -0
  242. data/test/network/client_request.rb +0 -0
  243. data/test/network/daemon.rb +0 -0
  244. data/test/network/handler/bucket.rb +0 -0
  245. data/test/network/handler/ca.rb +0 -0
  246. data/test/network/handler/fileserver.rb +8 -0
  247. data/test/network/handler/handler.rb +0 -0
  248. data/test/network/handler/master.rb +3 -1
  249. data/test/network/handler/report.rb +0 -0
  250. data/test/network/handler/resource.rb +0 -0
  251. data/test/network/handler/runner.rb +0 -0
  252. data/test/network/rights.rb +0 -0
  253. data/test/network/server/mongrel_test.rb +0 -0
  254. data/test/network/server/webrick.rb +0 -0
  255. data/test/network/xmlrpc/client.rb +0 -0
  256. data/test/network/xmlrpc/processor.rb +0 -0
  257. data/test/network/xmlrpc/server.rb +0 -0
  258. data/test/network/xmlrpc/webrick_servlet.rb +0 -0
  259. data/test/other/dsl.rb +0 -0
  260. data/test/other/events.rb +0 -0
  261. data/test/other/overrides.rb +0 -0
  262. data/test/other/provider.rb +0 -0
  263. data/test/other/puppet.rb +0 -0
  264. data/test/other/relationships.rb +0 -0
  265. data/test/other/report.rb +2 -4
  266. data/test/other/transactions.rb +1 -1
  267. data/test/puppet/conffiles.rb +0 -0
  268. data/test/puppet/defaults.rb +0 -0
  269. data/test/puppet/errortest.rb +0 -0
  270. data/test/puppet/tc_suidmanager.rb +0 -0
  271. data/test/rails/ast.rb +0 -0
  272. data/test/rails/configuration.rb +0 -0
  273. data/test/rails/host.rb +0 -0
  274. data/test/rails/rails.rb +0 -0
  275. data/test/rails/railsparameter.rb +0 -0
  276. data/test/rails/railsresource.rb +0 -0
  277. data/test/ral/manager/attributes.rb +0 -0
  278. data/test/ral/manager/instances.rb +0 -0
  279. data/test/ral/manager/manager.rb +0 -0
  280. data/test/ral/manager/provider.rb +0 -0
  281. data/test/ral/manager/type.rb +0 -0
  282. data/test/ral/providers/cron/crontab.rb +0 -0
  283. data/test/ral/providers/group.rb +14 -13
  284. data/test/ral/providers/host/netinfo.rb +0 -0
  285. data/test/ral/providers/host/parsed.rb +0 -0
  286. data/test/ral/providers/mailalias/aliases.rb +0 -0
  287. data/test/ral/providers/mount/netinfo.rb +0 -0
  288. data/test/ral/providers/nameservice.rb +0 -0
  289. data/test/ral/providers/package.rb +0 -31
  290. data/test/ral/providers/package/aptitude.rb +1 -2
  291. data/test/ral/providers/package/aptrpm.rb +2 -2
  292. data/test/ral/providers/parsedfile.rb +0 -0
  293. data/test/ral/providers/port/parsed.rb +0 -0
  294. data/test/ral/providers/provider.rb +0 -0
  295. data/test/ral/providers/service/base.rb +0 -0
  296. data/test/ral/providers/service/debian.rb +0 -0
  297. data/test/ral/providers/sshkey/parsed.rb +0 -0
  298. data/test/ral/providers/user.rb +8 -8
  299. data/test/ral/providers/user/useradd.rb +0 -0
  300. data/test/ral/type/basic.rb +0 -0
  301. data/test/ral/type/cron.rb +0 -0
  302. data/test/ral/type/exec.rb +0 -0
  303. data/test/ral/type/file.rb +0 -0
  304. data/test/ral/type/file/target.rb +0 -0
  305. data/test/ral/type/filebucket.rb +0 -0
  306. data/test/ral/type/fileignoresource.rb +0 -0
  307. data/test/ral/type/filesources.rb +1 -3
  308. data/test/ral/type/group.rb +0 -0
  309. data/test/ral/type/host.rb +0 -0
  310. data/test/ral/type/mailalias.rb +1 -2
  311. data/test/ral/type/parameter.rb +0 -0
  312. data/test/ral/type/port.rb +0 -0
  313. data/test/ral/type/property.rb +0 -0
  314. data/test/ral/type/resources.rb +0 -0
  315. data/test/ral/type/service.rb +0 -0
  316. data/test/ral/type/sshkey.rb +0 -0
  317. data/test/ral/type/tidy.rb +0 -0
  318. data/test/ral/type/user.rb +0 -50
  319. data/test/ral/type/yumrepo.rb +7 -1
  320. data/test/ral/type/zone.rb +0 -0
  321. data/test/test +0 -0
  322. data/test/util/autoload.rb +0 -0
  323. data/test/util/classgen.rb +0 -0
  324. data/test/util/execution.rb +0 -0
  325. data/test/util/features.rb +0 -0
  326. data/test/util/fileparsing.rb +0 -0
  327. data/test/util/filetype.rb +0 -0
  328. data/test/util/inifile.rb +0 -0
  329. data/test/util/instance_loader.rb +0 -0
  330. data/test/util/log.rb +0 -59
  331. data/test/util/metrics.rb +0 -0
  332. data/test/util/package.rb +0 -0
  333. data/test/util/pidlock.rb +0 -0
  334. data/test/util/settings.rb +0 -0
  335. data/test/util/storage.rb +0 -0
  336. data/test/util/subclass_loader.rb +0 -0
  337. data/test/util/utiltest.rb +0 -0
  338. metadata +54 -19
  339. data/lib/puppet/metatype/attributes.rb +0 -685
  340. data/lib/puppet/metatype/closure.rb +0 -49
  341. data/lib/puppet/metatype/container.rb +0 -50
  342. data/lib/puppet/metatype/evaluation.rb +0 -163
  343. data/lib/puppet/metatype/instances.rb +0 -305
  344. data/lib/puppet/metatype/metaparams.rb +0 -423
  345. data/lib/puppet/metatype/providers.rb +0 -247
  346. data/lib/puppet/metatype/relationships.rb +0 -115
  347. data/lib/puppet/metatype/schedules.rb +0 -33
  348. data/lib/puppet/metatype/tags.rb +0 -38
  349. data/lib/puppet/util/plist.rb +0 -23
  350. data/lib/puppet/util/plist/generator.rb +0 -225
  351. data/lib/puppet/util/plist/parser.rb +0 -226
  352. data/test/ral/providers/package/apt.rb +0 -169
  353. data/test/ral/providers/package/dpkg.rb +0 -64
  354. data/test/util/posixtest.rb +0 -169
data/bin/ralsh CHANGED
File without changes
File without changes
File without changes
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>CFBundleIdentifier</key>
6
+ <string>com.reductivelabs.puppet</string>
7
+ <key>CFBundleShortVersionString</key>
8
+ <string>{SHORTVERSION}</string>
9
+ <key>IFMajorVersion</key>
10
+ <integer>{MAJORVERSION}</integer>
11
+ <key>IFMinorVersion</key>
12
+ <integer>{MINORVERSION}</integer>
13
+ <key>IFPkgFlagAllowBackRev</key>
14
+ <false/>
15
+ <key>IFPkgFlagAuthorizationAction</key>
16
+ <string>RootAuthorization</string>
17
+ <key>IFPkgFlagDefaultLocation</key>
18
+ <string>/</string>
19
+ <key>IFPkgFlagFollowLinks</key>
20
+ <true/>
21
+ <key>IFPkgFlagInstallFat</key>
22
+ <false/>
23
+ <key>IFPkgFlagIsRequired</key>
24
+ <false/>
25
+ <key>IFPkgFlagOverwritePermissions</key>
26
+ <false/>
27
+ <key>IFPkgFlagRelocatable</key>
28
+ <false/>
29
+ <key>IFPkgFlagRestartAction</key>
30
+ <string>None</string>
31
+ <key>IFPkgFlagRootVolumeOnly</key>
32
+ <true/>
33
+ <key>IFPkgFlagUpdateInstalledLanguages</key>
34
+ <false/>
35
+ </dict>
36
+ </plist>
@@ -0,0 +1,167 @@
1
+ #!/bin/bash
2
+ #
3
+ # Script to build an "old style" not flat pkg out of the puppet repository.
4
+ #
5
+ # Author: Nigel Kersten (nigelk@google.com)
6
+ #
7
+ # Last Updated: 2008-07-31
8
+ #
9
+ # Copyright 2008 Google Inc.
10
+ #
11
+ # Licensed under the Apache License, Version 2.0 (the "License");
12
+ # you may not use this file except in compliance with the License.
13
+ # You may obtain a copy of the License at
14
+ #
15
+ # http://www.apache.org/licenses/LICENSE-2.0
16
+ #
17
+ # Unless required by applicable law or agreed to in writing, software
18
+ # distributed under the License is distributed on an "AS IS" BASIS,
19
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ # See the License for the specific language governing permissions and
21
+ # limitations under the License
22
+
23
+
24
+ INSTALLRB="install.rb"
25
+ BINDIR="/usr/bin"
26
+ SITELIBDIR="/usr/lib/ruby/site_ruby/1.8"
27
+ PACKAGEMAKER="/Developer/usr/bin/packagemaker"
28
+ PROTO_PLIST="PackageInfo.plist"
29
+ PREFLIGHT="preflight"
30
+
31
+
32
+ function find_installer() {
33
+ # we walk up three directories to make this executable from the root,
34
+ # root/conf or root/conf/osx
35
+ if [ -f "./${INSTALLRB}" ]; then
36
+ installer="$(pwd)/${INSTALLRB}"
37
+ elif [ -f "../${INSTALLRB}" ]; then
38
+ installer="$(pwd)/../${INSTALLRB}"
39
+ elif [ -f "../../${INSTALLRB}" ]; then
40
+ installer="$(pwd)/../${INSTALLRB}"
41
+ else
42
+ installer=""
43
+ fi
44
+ }
45
+
46
+ function find_puppet_root() {
47
+ puppet_root=$(dirname "${installer}")
48
+ }
49
+
50
+ function install_puppet() {
51
+ echo "Installing Puppet to ${pkgroot}"
52
+ "${installer}" --destdir="${pkgroot}" --bindir="${BINDIR}" --sitelibdir="${SITELIBDIR}"
53
+ chown -R root:admin "${pkgroot}"
54
+ }
55
+
56
+ function get_puppet_version() {
57
+ puppet_version=$(RUBYLIB="${pkgroot}/${SITELIBDIR}:${RUBYLIB}" ruby -e "require 'puppet'; puts Puppet.version")
58
+ }
59
+
60
+ function prepare_package() {
61
+ # As we can't specify to follow symlinks from the command line, we have
62
+ # to go through the hassle of creating an Info.plist file for packagemaker
63
+ # to look at for package creation and substitue the version strings out.
64
+ # Major/Minor versions can only be integers, so we have "0" and "245" for
65
+ # puppet version 0.24.5
66
+ # Note too that for 10.5 compatibility this Info.plist *must* be set to
67
+ # follow symlinks.
68
+ VER1=$(echo ${puppet_version} | awk -F "." '{print $1}')
69
+ VER2=$(echo ${puppet_version} | awk -F "." '{print $2}')
70
+ VER3=$(echo ${puppet_version} | awk -F "." '{print $3}')
71
+ major_version="${VER1}"
72
+ minor_version="${VER2}${VER3}"
73
+ cp "${puppet_root}/conf/osx/${PROTO_PLIST}" "${pkgtemp}"
74
+ sed -i '' "s/{SHORTVERSION}/${puppet_version}/g" "${pkgtemp}/${PROTO_PLIST}"
75
+ sed -i '' "s/{MAJORVERSION}/${major_version}/g" "${pkgtemp}/${PROTO_PLIST}"
76
+ sed -i '' "s/{MINORVERSION}/${minor_version}/g" "${pkgtemp}/${PROTO_PLIST}"
77
+
78
+ # We need to create a preflight script to remove traces of previous
79
+ # puppet installs due to limitations in Apple's pkg format.
80
+ mkdir "${pkgtemp}/scripts"
81
+ cp "${puppet_root}/conf/osx/${PREFLIGHT}" "${pkgtemp}/scripts"
82
+
83
+ # substitute in the sitelibdir specified above on the assumption that this
84
+ # is where any previous puppet install exists that should be cleaned out.
85
+ sed -i '' "s|{SITELIBDIR}|${SITELIBDIR}|g" "${pkgtemp}/scripts/${PREFLIGHT}"
86
+ chmod 0755 "${pkgtemp}/scripts/${PREFLIGHT}"
87
+ }
88
+
89
+ function create_package() {
90
+ rm -fr "$(pwd)/puppet-${puppet_version}.pkg"
91
+ echo "Building package"
92
+ echo "Note that packagemaker is reknowned for spurious errors. Don't panic."
93
+ "${PACKAGEMAKER}" --root "${pkgroot}" \
94
+ --info "${pkgtemp}/${PROTO_PLIST}" \
95
+ --scripts ${pkgtemp}/scripts \
96
+ --out "$(pwd)/puppet-${puppet_version}.pkg"
97
+ if [ $? -ne 0 ]; then
98
+ echo "There was a problem building the package."
99
+ cleanup_and_exit 1
100
+ exit 1
101
+ else
102
+ echo "The package has been built at:"
103
+ echo "$(pwd)/puppet-${puppet_version}.pkg"
104
+ fi
105
+ }
106
+
107
+ function cleanup_and_exit() {
108
+ if [ -d "${pkgroot}" ]; then
109
+ rm -fr "${pkgroot}"
110
+ fi
111
+ if [ -d "${pkgtemp}" ]; then
112
+ rm -fr "${pkgtemp}"
113
+ fi
114
+ exit $1
115
+ }
116
+
117
+ # Program entry point
118
+ function main() {
119
+
120
+ if [ $(whoami) != "root" ]; then
121
+ echo "This script needs to be run as root via su or sudo."
122
+ cleanup_and_exit 1
123
+ fi
124
+
125
+ find_installer
126
+
127
+ if [ ! "${installer}" ]; then
128
+ echo "Unable to find ${INSTALLRB}"
129
+ cleanup_and_exit 1
130
+ fi
131
+
132
+ find_puppet_root
133
+
134
+ if [ ! "${puppet_root}" ]; then
135
+ echo "Unable to find puppet repository root."
136
+ cleanup_and_exit 1
137
+ fi
138
+
139
+ pkgroot=$(mktemp -d -t puppetpkg)
140
+
141
+ if [ ! "${pkgroot}" ]; then
142
+ echo "Unable to create temporary package root."
143
+ cleanup_and_exit 1
144
+ fi
145
+
146
+ pkgtemp=$(mktemp -d -t puppettmp)
147
+
148
+ if [ ! "${pkgtemp}" ]; then
149
+ echo "Unable to create temporary package root."
150
+ cleanup_and_exit 1
151
+ fi
152
+
153
+ install_puppet
154
+ get_puppet_version
155
+
156
+ if [ ! "${puppet_version}" ]; then
157
+ echo "Unable to retrieve puppet version"
158
+ cleanup_and_exit 1
159
+ fi
160
+
161
+ prepare_package
162
+ create_package
163
+
164
+ cleanup_and_exit 0
165
+ }
166
+
167
+ main "$@"
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ #
3
+ # Make sure that old puppet cruft is removed
4
+ # This also allows us to downgrade puppet as
5
+ # it's more likely that installing old versions
6
+ # over new will cause issues.
7
+ #
8
+ # ${3} is the destination volume so that this works correctly
9
+ # when being installed to volumes other than the current OS.
10
+
11
+ /bin/rm -Rf "${3}{SITELIBDIR}/puppet"
12
+ /bin/rm -Rf "${3}{SITELIBDIR}/puppet.rb"
@@ -84,7 +84,7 @@ case "$1" in
84
84
  [ -f "$pidfile" ] && restart
85
85
  ;;
86
86
  status)
87
- status $puppetd
87
+ status -p "$pidfile" $puppetd
88
88
  RETVAL=$?
89
89
  ;;
90
90
  once)
@@ -2,12 +2,12 @@
2
2
  %define pbuild %{_builddir}/%{name}-%{version}
3
3
  %define confdir conf/redhat
4
4
 
5
- %define has_ruby_abi 0%{?fedora:%fedora} >= 5 || 0%{?rhel:%rhel} >= 5
5
+ %define has_ruby_abi 0%{?fedora:%fedora} >= 5 || 0%{?rhel:%rhel} >= 5 || 0%{?centos:%centos} >= 5
6
6
  %define has_ruby_noarch %has_ruby_abi
7
7
 
8
8
  Summary: A network tool for managing many disparate systems
9
9
  Name: puppet
10
- Version: 0.24.5
10
+ Version: 0.24.6
11
11
  Release: 1%{?dist}
12
12
  License: GPLv2+
13
13
  Group: System Environment/Base
@@ -51,8 +51,8 @@ done
51
51
  # Fix some rpmlint complaints
52
52
  for f in mac_dscl.pp mac_dscl_revert.pp \
53
53
  mac_netinfo.pp mac_pkgdmg.pp ; do
54
- sed -i -e'1d' examples/code/$f
55
- chmod a-x examples/code/$f
54
+ sed -i -e'1d' examples/$f
55
+ chmod a-x examples/$f
56
56
  done
57
57
 
58
58
  find examples/ -type f -empty | xargs rm
@@ -65,6 +65,7 @@ install -d -m0755 %{buildroot}%{_bindir}
65
65
  install -d -m0755 %{buildroot}%{ruby_sitelibdir}
66
66
  install -d -m0755 %{buildroot}%{_sysconfdir}/puppet/manifests
67
67
  install -d -m0755 %{buildroot}%{_docdir}/%{name}-%{version}
68
+ install -d -m0755 %{buildroot}%{_mandir}/man8
68
69
  install -d -m0755 %{buildroot}%{_localstatedir}/lib/puppet
69
70
  install -d -m0755 %{buildroot}%{_localstatedir}/run/puppet
70
71
  install -d -m0755 %{buildroot}%{_localstatedir}/log/puppet
@@ -73,6 +74,7 @@ mv %{buildroot}%{_sbindir}/puppet %{buildroot}%{_bindir}/puppet
73
74
  mv %{buildroot}%{_sbindir}/ralsh %{buildroot}%{_bindir}/ralsh
74
75
  mv %{buildroot}%{_sbindir}/filebucket %{buildroot}%{_bindir}/filebucket
75
76
  mv %{buildroot}%{_sbindir}/puppetrun %{buildroot}%{_bindir}/puppetrun
77
+ mv %{buildroot}%{_sbindir}/puppetdoc %{buildroot}%{_bindir}/puppetdoc
76
78
  install -Dp -m0644 %{pbuild}/lib/puppet.rb %{buildroot}%{ruby_sitelibdir}/puppet.rb
77
79
  cp -a %{pbuild}/lib/puppet %{buildroot}%{ruby_sitelibdir}
78
80
  find %{buildroot}%{ruby_sitelibdir} -type f -perm +ugo+x -print0 | xargs -0 -r chmod a-x
@@ -83,6 +85,7 @@ install -Dp -m0755 %{confdir}/server.init %{buildroot}%{_initrddir}/puppetmaster
83
85
  install -Dp -m0644 %{confdir}/fileserver.conf %{buildroot}%{_sysconfdir}/puppet/fileserver.conf
84
86
  install -Dp -m0644 %{confdir}/puppet.conf %{buildroot}%{_sysconfdir}/puppet/puppet.conf
85
87
  install -Dp -m0644 %{confdir}/logrotate %{buildroot}%{_sysconfdir}/logrotate.d/puppet
88
+ install -Dp -m0644 man/man8/* %{buildroot}%{_mandir}/man8
86
89
  # We need something for these ghosted files, otherwise rpmbuild
87
90
  # will complain loudly. They won't be included in the binary packages
88
91
  touch %{buildroot}%{_sysconfdir}/puppet/puppetmasterd.conf
@@ -94,6 +97,8 @@ touch %{buildroot}%{_sysconfdir}/puppet/puppetd.conf
94
97
  %{_bindir}/puppet
95
98
  %{_bindir}/ralsh
96
99
  %{_bindir}/filebucket
100
+ %{_bindir}/puppetdoc
101
+ %exclude %{_mandir}/man8/pi.8.gz
97
102
  %{_sbindir}/puppetd
98
103
  %{ruby_sitelibdir}/*
99
104
  %{_initrddir}/puppet
@@ -102,13 +107,17 @@ touch %{buildroot}%{_sysconfdir}/puppet/puppetd.conf
102
107
  %config(noreplace) %{_sysconfdir}/puppet/puppet.conf
103
108
  %ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetd.conf
104
109
  %doc CHANGELOG COPYING LICENSE README examples
105
- %exclude %{_sbindir}/puppetdoc
106
110
  %config(noreplace) %{_sysconfdir}/logrotate.d/puppet
107
111
  # These need to be owned by puppet so the server can
108
112
  # write to them
109
113
  %attr(-, puppet, puppet) %{_localstatedir}/run/puppet
110
114
  %attr(-, puppet, puppet) %{_localstatedir}/log/puppet
111
115
  %attr(-, puppet, puppet) %{_localstatedir}/lib/puppet
116
+ %doc %{_mandir}/man8/puppet.8.gz
117
+ %doc %{_mandir}/man8/puppet.conf.8.gz
118
+ %doc %{_mandir}/man8/puppetd.8.gz
119
+ %doc %{_mandir}/man8/ralsh.8.gz
120
+ %doc %{_mandir}/man8/puppetdoc.8.gz
112
121
 
113
122
  %files server
114
123
  %defattr(-, root, root, 0755)
@@ -121,6 +130,10 @@ touch %{buildroot}%{_sysconfdir}/puppet/puppetd.conf
121
130
  %ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetca.conf
122
131
  %ghost %config(noreplace,missingok) %{_sysconfdir}/puppet/puppetmasterd.conf
123
132
  %{_sbindir}/puppetca
133
+ %doc %{_mandir}/man8/filebucket.8.gz
134
+ %doc %{_mandir}/man8/puppetca.8.gz
135
+ %doc %{_mandir}/man8/puppetmasterd.8.gz
136
+ %doc %{_mandir}/man8/puppetrun.8.gz
124
137
 
125
138
  %pre
126
139
  /usr/sbin/groupadd -r puppet 2>/dev/null || :
@@ -157,7 +170,22 @@ fi
157
170
  rm -rf %{buildroot}
158
171
 
159
172
  %changelog
160
- * Mon Jul 22 2008 James Turnbull <james@lovedthanlost.net> - 0.24.5-1
173
+ * Mon Jul 28 2008 David Lutterkort <dlutter@redhat.com> - 0.24.5-1
174
+ - Add /usr/bin/puppetdoc
175
+
176
+ * Thu Jul 24 2008 Brenton Leanhardt <bleanhar@redhat.com>
177
+ - New version
178
+ - man pages now ship with tarball
179
+ - examples/code moved to root examples dir in upstream tarball
180
+
181
+ * Tue Mar 25 2008 David Lutterkort <dlutter@redhat.com> - 0.24.4-1
182
+ - Add man pages (from separate tarball, upstream will fix to
183
+ include in main tarball)
184
+
185
+ * Mon Mar 24 2008 David Lutterkort <dlutter@redhat.com> - 0.24.3-1
186
+ - New version
187
+
188
+ * Wed Mar 5 2008 David Lutterkort <dlutter@redhat.com> - 0.24.2-1
161
189
  - New version
162
190
 
163
191
  * Sat Dec 22 2007 David Lutterkort <dlutter@redhat.com> - 0.24.1-1
@@ -1,7 +1,8 @@
1
1
  #!/bin/bash
2
2
  # puppetmaster This shell script enables the puppetmaster server.
3
3
  #
4
- # Author: Duane Griffin <d.griffin@psenterprise.com>
4
+ # Authors: Duane Griffin <d.griffin@psenterprise.com>
5
+ # Peter Meier <peter.meier@immerda.ch> (Mongrel enhancements)
5
6
  #
6
7
  # chkconfig: - 65 45
7
8
  #
@@ -22,6 +23,11 @@ fi
22
23
 
23
24
  PUPPETMASTER_OPTS=""
24
25
  [ -n "$PUPPETMASTER_MANIFEST" ] && PUPPETMASTER_OPTS="--manifest=${PUPPETMASTER_MANIFEST}"
26
+ if [ -n "$PUPPETMASTER_PORTS" ] && [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
27
+ PUPPETMASTER_OPTS="$PUPPETMASTER_OPTS --servertype=mongrel"
28
+ elif [ -n "$PUPPETMASTER_PORTS" ] && [ ${#PUPPETMASTER_PORTS[@]} -eq 1 ]; then
29
+ PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} --masterport=${PUPPETMASTER_PORTS[0]}"
30
+ fi
25
31
  [ -n "$PUPPETMASTER_LOG" ] && PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} --logdest=${PUPPETMASTER_LOG}"
26
32
  PUPPETMASTER_OPTS="${PUPPETMASTER_OPTS} \
27
33
  ${PUPPETMASTER_EXTRA_OPTS}"
@@ -36,8 +42,16 @@ start() {
36
42
 
37
43
  # Confirm the manifest exists
38
44
  if [ -r $PUPPETMASTER_MANIFEST ]; then
39
- daemon $PUPPETMASTER $PUPPETMASTER_OPTS
40
- RETVAL=$?
45
+ if [ -n "$PUPPETMASTER_PORTS" ] && [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
46
+ for ((i=0; i<${#PUPPETMASTER_PORTS[@]}; i++)); do
47
+ echo -en "\nPort: ${PUPPETMASTER_PORTS[$i]}"
48
+ daemon $PUPPETMASTER $PUPPETMASTER_OPTS --masterport=${PUPPETMASTER_PORTS[$i]} --pidfile=/var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid
49
+ ret=$?; [ $ret != 0 ] && RETVAL=$ret
50
+ done
51
+ else
52
+ daemon $PUPPETMASTER $PUPPETMASTER_OPTS
53
+ RETVAL=$?
54
+ fi
41
55
  else
42
56
  failure $"Manifest does not exist: $PUPPETMASTER_MANIFEST"
43
57
  echo
@@ -50,8 +64,16 @@ start() {
50
64
 
51
65
  stop() {
52
66
  echo -n $"Stopping puppetmaster: "
53
- killproc $PUPPETMASTER
54
- RETVAL=$?
67
+ if [ -n "$PUPPETMASTER_PORTS" ] && [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
68
+ for ((i=0; i<${#PUPPETMASTER_PORTS[@]}; i++)); do
69
+ echo -en "\nPort: ${PUPPETMASTER_PORTS[$i]}"
70
+ killproc -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster
71
+ ret=$?; [ $ret != 0 ] && RETVAL=$ret
72
+ done
73
+ else
74
+ killproc $PUPPETMASTER
75
+ RETVAL=$?
76
+ fi
55
77
  echo
56
78
  [ $RETVAL -eq 0 ] && rm -f "$lockfile"
57
79
  return $RETVAL
@@ -67,6 +89,20 @@ genconfig() {
67
89
  $PUPPETMASTER $PUPPETMASTER_OPTS --genconfig
68
90
  }
69
91
 
92
+ puppetmaster_status() {
93
+ if [ -n "$PUPPETMASTER_PORTS" ] && [ ${#PUPPETMASTER_PORTS[@]} -gt 1 ]; then
94
+ for ((i=0; i<${#PUPPETMASTER_PORTS[@]}; i++)); do
95
+ echo -en "Port ${PUPPETMASTER_PORTS[$i]}: "
96
+ status -p /var/run/puppet/puppetmaster.${PUPPETMASTER_PORTS[$i]}.pid puppetmaster
97
+ ret=$?; [ $ret != 0 ] && RETVAL=$ret
98
+ done
99
+ else
100
+ status $PUPPETMASTER
101
+ RETVAL=$?
102
+ fi
103
+ return $RETVAL
104
+ }
105
+
70
106
  case "$1" in
71
107
  start)
72
108
  start
@@ -81,8 +117,7 @@ case "$1" in
81
117
  [ -f "$lockfile" ] && restart
82
118
  ;;
83
119
  status)
84
- status $PUPPETMASTER
85
- RETVAL=$?
120
+ puppetmaster_status
86
121
  ;;
87
122
  genconfig)
88
123
  genconfig
@@ -5,5 +5,27 @@
5
5
  # Specify syslog to send log messages to the system log.
6
6
  #PUPPETMASTER_LOG=syslog
7
7
 
8
+ # You may specify an alternate port or an array of ports on which
9
+ # puppetmaster should listen. Default is: 8140
10
+ # If you specify more than one port, the puppetmaster ist automatically
11
+ # started with the servertype set to mongrel. This might be interesting
12
+ # if you'd like to run your puppetmaster in a loadbalanced cluster.
13
+ # Please note: this won't setup nor start any loadbalancer.
14
+ # If you'd like to run puppetmaster with mongrel as servertype but only
15
+ # on one (specified) port, you have to add --servertype=mongrel to
16
+ # PUPPETMASTER_EXTRA_OPTS.
17
+ # Default: Empty (Puppetmaster isn't started with mongrel, nor on a
18
+ # specific port)
19
+ #
20
+ # Please note: Due to reduced options in the rc-functions lib in RHEL/Centos
21
+ # versions prior to 5, this feature won't work. Fedora versions >= 8 are
22
+ # known to work.
23
+ #PUPPETMASTER_PORTS=""
24
+ # Puppetmaster on a different port, run with standard webrick servertype
25
+ #PUPPETMASTER_PORTS="8141"
26
+ # Example with multiple ports which will start puppetmaster with mongrel
27
+ # as a servertype
28
+ #PUPPETMASTER_PORTS=( 18140 18141 18142 18143 )
29
+
8
30
  # You may specify other parameters to the puppetmaster here
9
31
  #PUPPETMASTER_EXTRA_OPTS=--noca