puppet 0.24.5 → 0.24.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,63 @@
1
+
2
+ PUPPETMASTER INSIDE APACHE & PASSENGER
3
+ ======================================
4
+
5
+ This is about running a puppetmaster inside Apache.
6
+
7
+ Please also see the docs at http://reductivelabs.com/trac/puppet/wiki/UsingPassenger
8
+ for further information.
9
+
10
+
11
+ WHAT IS IT?
12
+ ===========
13
+
14
+ Passenger [1] (AKA mod_rails or mod_rack) is an Apache 2.x Extension for
15
+ serving Rails or Rack applications.
16
+
17
+ This extension allows running a puppetmasterd as a Rack application;
18
+ it has only been tested with Passenger.
19
+
20
+
21
+ SHORT INSTALLATION INSTRUCTIONS
22
+ ===============================
23
+
24
+ Make sure puppetmasterd ran at least once, so the SSL certificates
25
+ got set up.
26
+
27
+ Install Rack:
28
+ gem install -v 0.4.0 rack
29
+
30
+ Install Apache and Passenger:
31
+ apt-get install apache2
32
+ gem install passenger
33
+ passenger-install-apache2-module
34
+ (See the Passenger installation instructions [2] for details.)
35
+
36
+ Enable Apache modules:
37
+ a2enmod ssl
38
+ a2enmod headers
39
+
40
+ Configure Apache:
41
+ cp apache2.conf /etc/apache2/conf.d/puppetmasterd
42
+ vim /etc/apache2/conf.d/puppetmasterd (replace the server hostnames)
43
+
44
+ Install the rack application [3]:
45
+ mkdir -p /usr/share/puppet/rack/puppetmasterd
46
+ mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp
47
+ cp config.ru /usr/share/puppet/rack/puppetmasterd
48
+ chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru
49
+
50
+ Go:
51
+ /etc/init.d/apache2 restart
52
+
53
+
54
+
55
+ [1] http://www.modrails.com/
56
+
57
+ [2] http://www.modrails.com/install.html
58
+
59
+ [3] Passenger will not let applications run as root or the Apache user,
60
+ instead an implicit setuid will be done, to the user whom owns
61
+ config.ru. Therefore, config.ru shall be owned by the puppet user.
62
+
63
+
@@ -0,0 +1,29 @@
1
+ Listen 8140
2
+ <VirtualHost *:8140>
3
+ SSLEngine on
4
+ SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA
5
+ SSLCertificateFile /var/lib/puppet/ssl/certs/puppet-server.inqnet.at.pem
6
+ SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppet-server.inqnet.at.pem
7
+ SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
8
+ SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem
9
+ # If Apache complains about invalid signatures on the CRL, you can try disabling
10
+ # CRL checking by commenting the next line.
11
+ SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
12
+ SSLVerifyClient optional
13
+ SSLVerifyDepth 1
14
+ SSLOptions +StdEnvVars
15
+
16
+ # The following client headers allow the same configuration to work with Pound.
17
+ RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e
18
+ RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e
19
+ RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e
20
+
21
+ RackAutoDetect On
22
+ DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/
23
+ <Directory /usr/share/puppet/rack/puppetmasterd/>
24
+ Options None
25
+ AllowOverride None
26
+ Order allow,deny
27
+ allow from all
28
+ </Directory>
29
+ </VirtualHost>
@@ -0,0 +1,40 @@
1
+ # Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
2
+ # Copyright (c) 2007 Luke Kanies, 2008 Christian Hofstaedtler
3
+ #
4
+ # This file is mostly based on puppetmasterd, which is part of
5
+ # the standard puppet distribution.
6
+
7
+ require 'rack'
8
+ require 'puppet'
9
+ require 'puppet/network/http_server/rack'
10
+
11
+ # startup code from bin/puppetmasterd
12
+ Puppet.parse_config
13
+ Puppet::Util::Log.level = :info
14
+ Puppet::Util::Log.newdestination(:syslog)
15
+ # A temporary solution, to at least make the master work for now.
16
+ Puppet::Node::Facts.terminus_class = :yaml
17
+ # Cache our nodes in yaml. Currently not configurable.
18
+ Puppet::Node.cache_class = :yaml
19
+
20
+ # The list of handlers running inside this puppetmaster
21
+ handlers = {
22
+ :Status => {},
23
+ :FileServer => {},
24
+ :Master => {},
25
+ :CA => {},
26
+ :FileBucket => {},
27
+ :Report => {}
28
+ }
29
+
30
+ # Fire up the Rack-Server instance
31
+ server = Puppet::Network::HTTPServer::Rack.new(handlers)
32
+
33
+ # prepare the rack app
34
+ app = proc do |env|
35
+ server.process(env)
36
+ end
37
+
38
+ # Go.
39
+ run app
40
+
File without changes
@@ -1,40 +1,15 @@
1
1
  #!/usr/bin/env ruby
2
+ # Puppetlast, a script to output the last check-in time of nodes. Also outputs the cached configuration state, if expired or not.
2
3
  #
3
- # Script to print out when puppet ran successfully last
4
- # AJ Christensen <aj@junglist.gen.nz>
4
+ # AJ "Fujin" Christensen <aj@junglist.gen.nz>
5
5
  #
6
-
7
6
  require 'puppet'
8
- require 'puppet/defaults'
9
- require 'yaml'
10
7
 
11
8
  Puppet[:config] = "/etc/puppet/puppet.conf"
12
9
  Puppet.parse_config
10
+ Puppet[:name] = "puppetmasterd"
11
+ Puppet::Node::Facts.terminus_class = :yaml
13
12
 
14
- print "puppetlast\n"
15
-
16
- nodes = {}
17
-
18
- yfdir = Puppet.settings.value(:vardir) + "/yaml/facts"
19
-
20
- if yfdir
21
- begin
22
- Dir.chdir(yfdir) do
23
- Dir.glob("*.yaml").each do |yaml|
24
- data = YAML.load_file(yaml)
25
- t = Time.now
26
- age = t - data.version
27
- nodes[data.name] = age.to_i
28
- end
29
- end
30
-
31
- nodes.sort.each do |node,age|
32
- minutes = age / 60 + 0.5
33
- print minutes.floor.to_s + ' minutes ago: ' + node + "\n"
34
- end
35
-
36
- rescue
37
- print 'error: ' + $! + "\n"
38
- end
39
-
13
+ Puppet::Node::Facts.search("*").sort { |a,b| a.name <=> b.name }.each do |node|
14
+ puts "#{node.name} #{node.expired? ? 'cached expired, ' : ''}checked in #{((Time.now - node.values[:_timestamp]) / 60).floor} minutes ago"
40
15
  end
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Script to clean up stored configs for (a) given host(s)
4
+ #
5
+ # Credits:
6
+ # Script was taken from http://reductivelabs.com/trac/puppet/attachment/wiki/UsingStoredConfiguration/kill_node_in_storedconfigs_db.rb
7
+ # which haven been initially posted by James Turnbull
8
+ # duritong adapted and improved the script a bit.
9
+
10
+ require 'getoptlong'
11
+ config = '/etc/puppet/puppet.conf'
12
+
13
+ def printusage(error_code)
14
+ puts "Usage: #{$0} [ list of hostnames as stored in hosts table ]"
15
+ puts "\n Options:"
16
+ puts "--config <puppet config file>"
17
+ exit(error_code)
18
+ end
19
+
20
+ opts = GetoptLong.new(
21
+ [ "--config", "-c", GetoptLong::REQUIRED_ARGUMENT ],
22
+ [ "--help", "-h", GetoptLong::NO_ARGUMENT ],
23
+ [ "--usage", "-u", GetoptLong::NO_ARGUMENT ],
24
+ [ "--version", "-v", GetoptLong::NO_ARGUMENT ]
25
+ )
26
+
27
+ begin
28
+ opts.each do |opt, arg|
29
+ case opt
30
+ when "--config"
31
+ config = arg
32
+
33
+ when "--help"
34
+ printusage(0)
35
+
36
+ when "--usage"
37
+ printusage(0)
38
+
39
+ when "--version"
40
+ puts "%s" % Puppet.version
41
+ exit
42
+ end
43
+ end
44
+ rescue GetoptLong::InvalidOption => detail
45
+ $stderr.puts "Try '#{$0} --help'"
46
+ exit(1)
47
+ end
48
+
49
+ printusage(1) unless ARGV.size > 0
50
+
51
+ require 'puppet/rails'
52
+ Puppet[:config] = config
53
+ Puppet.parse_config
54
+ pm_conf = Puppet.settings.instance_variable_get(:@values)[:puppetmasterd]
55
+
56
+ adapter = pm_conf[:dbadapter]
57
+ args = {:adapter => adapter, :log_level => pm_conf[:rails_loglevel]}
58
+
59
+ case adapter
60
+ when "sqlite3":
61
+ args[:dbfile] = pm_conf[:dblocation]
62
+ when "mysql", "postgresql":
63
+ args[:host] = pm_conf[:dbserver] unless pm_conf[:dbserver].to_s.empty?
64
+ args[:username] = pm_conf[:dbuser] unless pm_conf[:dbuser].to_s.empty?
65
+ args[:password] = pm_conf[:dbpassword] unless pm_conf[:dbpassword].to_s.empty?
66
+ args[:database] = pm_conf[:dbname] unless pm_conf[:dbname].to_s.empty?
67
+ socket = pm_conf[:dbsocket]
68
+ args[:socket] = socket unless socket.to_s.empty?
69
+ else
70
+ raise ArgumentError, "Invalid db adapter %s" % adapter
71
+ end
72
+
73
+ args[:database] = "puppet" unless not args[:database].to_s.empty?
74
+
75
+ ActiveRecord::Base.establish_connection(args)
76
+
77
+ ARGV.each { |hostname|
78
+ if @host = Puppet::Rails::Host.find_by_name(hostname.strip)
79
+ print "Killing #{hostname}..."
80
+ $stdout.flush
81
+ @host.destroy
82
+ puts "done."
83
+ else
84
+ puts "Can't find host #{hostname}."
85
+ end
86
+ }
87
+ exit 0
data/install.rb CHANGED
@@ -60,6 +60,7 @@ rescue
60
60
  end
61
61
 
62
62
  PREREQS = %w{openssl facter xmlrpc/client xmlrpc/server cgi}
63
+ MIN_FACTER_VERSION = 1.5
63
64
 
64
65
  InstallOptions = OpenStruct.new
65
66
 
@@ -102,7 +103,7 @@ def do_man(man, strip = 'man/')
102
103
  omf = File.join(InstallOptions.man_dir, mf.gsub(/#{strip}/, ''))
103
104
  om = File.dirname(omf)
104
105
  File.makedirs(om, true)
105
- File.chmod(0644, om)
106
+ File.chmod(0755, om)
106
107
  File.install(mf, omf, 0644, true)
107
108
  gzip = %x{which gzip}
108
109
  gzip.chomp!
@@ -115,6 +116,15 @@ def check_prereqs
115
116
  PREREQS.each { |pre|
116
117
  begin
117
118
  require pre
119
+ if pre == "facter"
120
+ # to_f isn't quite exact for strings like "1.5.1" but is good
121
+ # enough for this purpose.
122
+ facter_version = Facter.version.to_f
123
+ if facter_version < MIN_FACTER_VERSION
124
+ puts "Facter version: %s; minimum required: %s; cannot install" % [facter_version, MIN_FACTER_VERSION]
125
+ exit -1
126
+ end
127
+ end
118
128
  rescue LoadError
119
129
  puts "Could not load %s; cannot install" % pre
120
130
  exit -1
@@ -166,6 +176,21 @@ def prepare_installation
166
176
  opts.on('--[no-]tests', 'Prevents the execution of unit tests.', 'Default on.') do |ontest|
167
177
  InstallOptions.tests = ontest
168
178
  end
179
+ opts.on('--destdir[=OPTIONAL]', 'Installation prefix for all targets', 'Default essentially /') do |destdir|
180
+ InstallOptions.destdir = destdir
181
+ end
182
+ opts.on('--bindir[=OPTIONAL]', 'Installation directory for binaries', 'overrides Config::CONFIG["bindir"]') do |bindir|
183
+ InstallOptions.bindir = bindir
184
+ end
185
+ opts.on('--sbindir[=OPTIONAL]', 'Installation directory for system binaries', 'overrides Config::CONFIG["sbindir"]') do |sbindir|
186
+ InstallOptions.sbindir = sbindir
187
+ end
188
+ opts.on('--sitelibdir[=OPTIONAL]', 'Installation directory for libraries', 'overrides Config::CONFIG["sitelibdir"]') do |sitelibdir|
189
+ InstallOptions.sitelibdir = sitelibdir
190
+ end
191
+ opts.on('--mandir[=OPTIONAL]', 'Installation directory for man pages', 'overrides Config::CONFIG["mandir"]') do |mandir|
192
+ InstallOptions.mandir = mandir
193
+ end
169
194
  opts.on('--quick', 'Performs a quick installation. Only the', 'installation is done.') do |quick|
170
195
  InstallOptions.rdoc = false
171
196
  InstallOptions.ri = false
@@ -190,16 +215,6 @@ def prepare_installation
190
215
  version = [Config::CONFIG["MAJOR"], Config::CONFIG["MINOR"]].join(".")
191
216
  libdir = File.join(Config::CONFIG["libdir"], "ruby", version)
192
217
 
193
- sitelibdir = Config::CONFIG["sitelibdir"]
194
- if sitelibdir.nil?
195
- sitelibdir = $:.find { |x| x =~ /site_ruby/ }
196
- if sitelibdir.nil?
197
- sitelibdir = File.join(libdir, "site_ruby")
198
- elsif sitelibdir !~ Regexp.quote(version)
199
- sitelibdir = File.join(sitelibdir, version)
200
- end
201
- end
202
-
203
218
  # Mac OS X 10.5 declares bindir and sbindir as
204
219
  # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin
205
220
  # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/sbin
@@ -208,25 +223,65 @@ def prepare_installation
208
223
  Config::CONFIG['bindir'] = "/usr/bin"
209
224
  Config::CONFIG['sbindir'] = "/usr/sbin"
210
225
  end
226
+
227
+ if not InstallOptions.bindir.nil?
228
+ bindir = InstallOptions.bindir
229
+ else
230
+ bindir = Config::CONFIG['bindir']
231
+ end
232
+
233
+ if not InstallOptions.sbindir.nil?
234
+ sbindir = InstallOptions.sbindir
235
+ else
236
+ sbindir = Config::CONFIG['sbindir']
237
+ end
238
+
239
+ if not InstallOptions.sitelibdir.nil?
240
+ sitelibdir = InstallOptions.sitelibdir
241
+ else
242
+ sitelibdir = Config::CONFIG["sitelibdir"]
243
+ if sitelibdir.nil?
244
+ sitelibdir = $:.find { |x| x =~ /site_ruby/ }
245
+ if sitelibdir.nil?
246
+ sitelibdir = File.join(libdir, "site_ruby")
247
+ elsif sitelibdir !~ Regexp.quote(version)
248
+ sitelibdir = File.join(sitelibdir, version)
249
+ end
250
+ end
251
+ end
252
+
253
+ if not InstallOptions.mandir.nil?
254
+ mandir = InstallOptions.mandir
255
+ else
256
+ mandir = Config::CONFIG['mandir']
257
+ end
211
258
 
259
+ # To be deprecated once people move over to using --destdir option
212
260
  if (destdir = ENV['DESTDIR'])
213
- bindir = "#{destdir}#{Config::CONFIG['bindir']}"
214
- sbindir = "#{destdir}#{Config::CONFIG['sbindir']}"
215
- mandir = "#{destdir}#{Config::CONFIG['mandir']}"
261
+ bindir = "#{destdir}#{bindir}"
262
+ sbindir = "#{destdir}#{sbindir}"
263
+ mandir = "#{destdir}#{mandir}"
264
+ sitelibdir = "#{destdir}#{sitelibdir}"
265
+
266
+ FileUtils.makedirs(bindir)
267
+ FileUtils.makedirs(sbindir)
268
+ FileUtils.makedirs(mandir)
269
+ FileUtils.makedirs(sitelibdir)
270
+ # This is the new way forward
271
+ elsif (destdir = InstallOptions.destdir)
272
+ bindir = "#{destdir}#{bindir}"
273
+ sbindir = "#{destdir}#{sbindir}"
274
+ mandir = "#{destdir}#{mandir}"
216
275
  sitelibdir = "#{destdir}#{sitelibdir}"
217
- tmpdirs << bindir
218
276
 
219
277
  FileUtils.makedirs(bindir)
220
278
  FileUtils.makedirs(sbindir)
221
279
  FileUtils.makedirs(mandir)
222
280
  FileUtils.makedirs(sitelibdir)
223
- else
224
- bindir = Config::CONFIG['bindir']
225
- sbindir = Config::CONFIG['sbindir']
226
- mandir = Config::CONFIG['mandir']
227
- tmpdirs << Config::CONFIG['bindir']
228
281
  end
229
282
 
283
+ tmpdirs << bindir
284
+
230
285
  InstallOptions.tmp_dirs = tmpdirs.compact
231
286
  InstallOptions.site_dir = sitelibdir
232
287
  InstallOptions.bin_dir = bindir
@@ -25,7 +25,7 @@ require 'puppet/util/suidmanager'
25
25
  # it's also a place to find top-level commands like 'debug'
26
26
 
27
27
  module Puppet
28
- PUPPETVERSION = '0.24.5'
28
+ PUPPETVERSION = '0.24.6'
29
29
 
30
30
  def Puppet.version
31
31
  return PUPPETVERSION