puppet 0.22.4 → 0.23.0
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.
- data/CHANGELOG +156 -0
- data/README +2 -2
- data/Rakefile +6 -6
- data/bin/filebucket +212 -0
- data/bin/puppet +2 -0
- data/bin/puppetca +2 -4
- data/bin/puppetd +16 -15
- data/bin/puppetdoc +46 -496
- data/bin/puppetmasterd +3 -5
- data/bin/puppetrun +8 -3
- data/bin/ralsh +271 -0
- data/conf/redhat/client.init +1 -1
- data/conf/redhat/puppet.spec +13 -2
- data/conf/solaris/pkginfo +1 -1
- data/ext/puppet-test +374 -0
- data/install.rb +40 -31
- data/lib/puppet.rb +39 -4
- data/lib/puppet/config_stores/rest.rb +60 -0
- data/lib/puppet/configuration.rb +312 -17
- data/lib/puppet/external/event-loop/event-loop.rb +4 -0
- data/lib/puppet/external/gratr/rdot.rb +1 -1
- data/lib/puppet/fact_stores/yaml.rb +42 -0
- data/lib/puppet/feature/base.rb +4 -1
- data/lib/puppet/metatype/attributes.rb +20 -43
- data/lib/puppet/metatype/container.rb +1 -36
- data/lib/puppet/metatype/evaluation.rb +48 -19
- data/lib/puppet/metatype/instances.rb +35 -1
- data/lib/puppet/metatype/metaparams.rb +23 -19
- data/lib/puppet/metatype/providers.rb +25 -38
- data/lib/puppet/network/client/ca.rb +8 -5
- data/lib/puppet/network/client/master.rb +59 -17
- data/lib/puppet/network/handler.rb +18 -1
- data/lib/puppet/network/handler/ca.rb +9 -3
- data/lib/puppet/network/handler/facts.rb +70 -0
- data/lib/puppet/network/handler/filebucket.rb +4 -1
- data/lib/puppet/network/handler/fileserver.rb +65 -21
- data/lib/puppet/network/handler/master.rb +6 -3
- data/lib/puppet/network/handler/report.rb +12 -26
- data/lib/puppet/network/handler/resource.rb +14 -2
- data/lib/puppet/network/handler/runner.rb +5 -1
- data/lib/puppet/network/handler/status.rb +5 -1
- data/lib/puppet/network/server/mongrel.rb +4 -4
- data/lib/puppet/network/server/webrick.rb +14 -3
- data/lib/puppet/parameter.rb +30 -25
- data/lib/puppet/parser/ast.rb +1 -6
- data/lib/puppet/parser/ast/component.rb +23 -20
- data/lib/puppet/parser/ast/hostclass.rb +7 -11
- data/lib/puppet/parser/ast/leaf.rb +4 -1
- data/lib/puppet/parser/ast/node.rb +6 -8
- data/lib/puppet/parser/functions.rb +7 -4
- data/lib/puppet/parser/interpreter.rb +155 -205
- data/lib/puppet/parser/lexer.rb +35 -2
- data/lib/puppet/parser/parser.rb +705 -612
- data/lib/puppet/parser/resource.rb +91 -48
- data/lib/puppet/parser/resource/param.rb +52 -29
- data/lib/puppet/parser/scope.rb +28 -23
- data/lib/puppet/pgraph.rb +26 -21
- data/lib/puppet/propertychange.rb +12 -12
- data/lib/puppet/provider.rb +102 -31
- data/lib/puppet/provider/cron/crontab.rb +7 -8
- data/lib/puppet/provider/group/groupadd.rb +4 -4
- data/lib/puppet/provider/group/pw.rb +3 -3
- data/lib/puppet/provider/mount.rb +8 -8
- data/lib/puppet/provider/mount/netinfo.rb +5 -5
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +19 -31
- data/lib/puppet/provider/nameservice/netinfo.rb +14 -14
- data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
- data/lib/puppet/provider/nameservice/pw.rb +4 -4
- data/lib/puppet/provider/package.rb +31 -0
- data/lib/puppet/provider/package/appdmg.rb +118 -0
- data/lib/puppet/provider/package/apple.rb +18 -16
- data/lib/puppet/provider/package/apt.rb +13 -15
- data/lib/puppet/provider/package/aptitude.rb +5 -3
- data/lib/puppet/provider/package/aptrpm.rb +9 -11
- data/lib/puppet/provider/package/blastwave.rb +9 -9
- data/lib/puppet/provider/package/darwinport.rb +12 -11
- data/lib/puppet/provider/package/dpkg.rb +20 -12
- data/lib/puppet/provider/package/fink.rb +87 -0
- data/lib/puppet/provider/package/freebsd.rb +10 -11
- data/lib/puppet/provider/package/gem.rb +15 -15
- data/lib/puppet/provider/package/openbsd.rb +12 -17
- data/lib/puppet/provider/package/pkgdmg.rb +90 -16
- data/lib/puppet/provider/package/portage.rb +20 -14
- data/lib/puppet/provider/package/ports.rb +15 -13
- data/lib/puppet/provider/package/rpm.rb +20 -23
- data/lib/puppet/provider/package/rug.rb +6 -8
- data/lib/puppet/provider/package/sun.rb +20 -18
- data/lib/puppet/provider/package/sunfreeware.rb +2 -2
- data/lib/puppet/provider/package/up2date.rb +6 -10
- data/lib/puppet/provider/package/urpmi.rb +51 -0
- data/lib/puppet/provider/package/yum.rb +15 -13
- data/lib/puppet/provider/parsedfile.rb +53 -63
- data/lib/puppet/provider/service/base.rb +13 -15
- data/lib/puppet/provider/service/debian.rb +4 -4
- data/lib/puppet/provider/service/gentoo.rb +4 -4
- data/lib/puppet/provider/service/init.rb +22 -15
- data/lib/puppet/provider/service/redhat.rb +6 -6
- data/lib/puppet/provider/service/smf.rb +6 -6
- data/lib/puppet/provider/user/netinfo.rb +5 -5
- data/lib/puppet/provider/user/pw.rb +10 -5
- data/lib/puppet/provider/user/useradd.rb +9 -14
- data/lib/puppet/provider/zone/solaris.rb +80 -45
- data/lib/puppet/rails.rb +3 -34
- data/lib/puppet/rails/database/schema.rb +45 -24
- data/lib/puppet/rails/fact_value.rb +1 -0
- data/lib/puppet/rails/host.rb +69 -40
- data/lib/puppet/rails/param_name.rb +3 -8
- data/lib/puppet/rails/param_value.rb +2 -1
- data/lib/puppet/rails/puppet_class.rb +0 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +41 -17
- data/lib/puppet/rails/resource_tag.rb +4 -0
- data/lib/puppet/reference/configuration.rb +149 -0
- data/lib/puppet/reference/function.rb +13 -0
- data/lib/puppet/reference/network.rb +37 -0
- data/lib/puppet/reference/providers.rb +118 -0
- data/lib/puppet/reference/report.rb +21 -0
- data/lib/puppet/reference/type.rb +152 -0
- data/lib/puppet/reports/rrdgraph.rb +21 -7
- data/lib/puppet/reports/tagmail.rb +4 -1
- data/lib/puppet/sslcertificates.rb +1 -49
- data/lib/puppet/sslcertificates/ca.rb +2 -79
- data/lib/puppet/sslcertificates/inventory.rb +0 -10
- data/lib/puppet/transaction.rb +24 -41
- data/lib/puppet/transaction/report.rb +27 -1
- data/lib/puppet/type.rb +7 -43
- data/lib/puppet/type/component.rb +198 -124
- data/lib/puppet/type/cron.rb +51 -42
- data/lib/puppet/type/exec.rb +20 -19
- data/lib/puppet/type/group.rb +6 -55
- data/lib/puppet/type/host.rb +16 -37
- data/lib/puppet/type/mount.rb +30 -17
- data/lib/puppet/type/notify.rb +7 -8
- data/lib/puppet/type/package.rb +44 -80
- data/lib/puppet/type/pfile.rb +50 -41
- data/lib/puppet/type/pfile/checksum.rb +82 -95
- data/lib/puppet/type/pfile/content.rb +21 -25
- data/lib/puppet/type/pfile/ensure.rb +32 -30
- data/lib/puppet/type/pfile/group.rb +21 -26
- data/lib/puppet/type/pfile/mode.rb +25 -32
- data/lib/puppet/type/pfile/owner.rb +23 -27
- data/lib/puppet/type/pfile/source.rb +42 -33
- data/lib/puppet/type/pfile/target.rb +20 -18
- data/lib/puppet/type/pfile/type.rb +6 -7
- data/lib/puppet/type/pfilebucket.rb +3 -3
- data/lib/puppet/type/port.rb +5 -7
- data/lib/puppet/type/property.rb +58 -61
- data/lib/puppet/type/resources.rb +12 -8
- data/lib/puppet/type/schedule.rb +8 -8
- data/lib/puppet/type/service.rb +26 -33
- data/lib/puppet/type/sshkey.rb +6 -7
- data/lib/puppet/type/tidy.rb +41 -35
- data/lib/puppet/type/user.rb +34 -67
- data/lib/puppet/type/yumrepo.rb +27 -12
- data/lib/puppet/type/zone.rb +71 -110
- data/lib/puppet/util.rb +46 -61
- data/lib/puppet/util/autoload.rb +59 -47
- data/lib/puppet/util/config.rb +160 -18
- data/lib/puppet/util/config_store.rb +61 -0
- data/lib/puppet/util/fact_store.rb +60 -0
- data/lib/puppet/util/instance_loader.rb +74 -0
- data/lib/puppet/util/loadedfile.rb +5 -8
- data/lib/puppet/util/metric.rb +17 -25
- data/lib/puppet/util/posix.rb +39 -7
- data/lib/puppet/util/provider_features.rb +9 -1
- data/lib/puppet/util/rails/collection_merger.rb +16 -1
- data/lib/puppet/util/reference.rb +189 -0
- data/lib/puppet/util/storage.rb +2 -2
- data/lib/puppet/util/subclass_loader.rb +9 -2
- data/test/language/ast.rb +4 -148
- data/test/language/ast/component.rb +10 -1
- data/test/language/collector.rb +1 -191
- data/test/language/interpreter.rb +284 -327
- data/test/language/lexer.rb +13 -1
- data/test/language/node.rb +1 -1
- data/test/language/parser.rb +17 -4
- data/test/language/resource.rb +67 -101
- data/test/language/scope.rb +18 -3
- data/test/language/snippets.rb +114 -151
- data/test/lib/puppettest.rb +13 -0
- data/test/lib/puppettest/exetest.rb +7 -0
- data/test/lib/puppettest/fakes.rb +39 -28
- data/test/lib/puppettest/railstesting.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +30 -0
- data/test/network/client/ca.rb +27 -1
- data/test/network/client/client.rb +3 -3
- data/test/network/client/master.rb +102 -1
- data/test/network/handler/ca.rb +35 -1
- data/test/network/handler/facts.rb +112 -0
- data/test/network/handler/fileserver.rb +25 -1
- data/test/network/handler/handler.rb +2 -2
- data/test/network/handler/master.rb +2 -49
- data/test/network/handler/resource.rb +5 -6
- data/test/network/server/mongrel_test.rb +65 -0
- data/test/network/server/webrick.rb +2 -2
- data/test/network/xmlrpc/client.rb +2 -1
- data/test/network/xmlrpc/processor.rb +2 -1
- data/test/other/pgraph.rb +6 -5
- data/test/other/propertychange.rb +11 -12
- data/test/other/report.rb +44 -27
- data/test/other/transactions.rb +17 -16
- data/test/puppet/tc_suidmanager.rb +2 -2
- data/test/rails/ast.rb +74 -0
- data/test/rails/collection.rb +214 -0
- data/test/rails/host.rb +49 -24
- data/test/rails/interpreter.rb +91 -0
- data/test/rails/railsparameter.rb +22 -11
- data/test/rails/railsresource.rb +140 -7
- data/test/ral/manager/attributes.rb +37 -13
- data/test/ral/manager/instances.rb +82 -0
- data/test/ral/manager/provider.rb +60 -22
- data/test/ral/manager/type.rb +9 -6
- data/test/ral/providers/cron/crontab.rb +59 -7
- data/test/ral/providers/group.rb +7 -7
- data/test/ral/providers/host/netinfo.rb +5 -6
- data/test/ral/providers/host/parsed.rb +4 -4
- data/test/ral/providers/mount/parsed.rb +11 -6
- data/test/ral/providers/nameservice.rb +2 -2
- data/test/ral/providers/package.rb +39 -14
- data/test/ral/providers/package/apt.rb +72 -3
- data/test/ral/providers/package/aptitude.rb +15 -12
- data/test/ral/providers/package/aptrpm.rb +3 -3
- data/test/ral/providers/package/dpkg.rb +2 -2
- data/test/ral/providers/parsedfile.rb +114 -88
- data/test/ral/providers/{parsedport.rb → port/parsed.rb} +1 -1
- data/test/ral/providers/provider.rb +93 -13
- data/test/ral/providers/service.rb +52 -26
- data/test/ral/providers/sshkey/parsed.rb +3 -3
- data/test/ral/providers/user.rb +19 -20
- data/test/ral/providers/user/useradd.rb +1 -5
- data/test/ral/types/cron.rb +49 -36
- data/test/ral/types/file.rb +38 -35
- data/test/ral/types/file/target.rb +4 -4
- data/test/ral/types/filesources.rb +24 -22
- data/test/ral/types/group.rb +4 -2
- data/test/ral/types/host.rb +17 -10
- data/test/ral/types/mount.rb +40 -23
- data/test/ral/types/package.rb +62 -5
- data/test/ral/types/parameter.rb +2 -2
- data/test/ral/types/property.rb +27 -20
- data/test/ral/types/resources.rb +4 -16
- data/test/ral/types/schedule.rb +2 -2
- data/test/ral/types/service.rb +2 -3
- data/test/ral/types/sshkey.rb +3 -3
- data/test/ral/types/tidy.rb +6 -15
- data/test/ral/types/user.rb +17 -17
- data/test/ral/types/yumrepo.rb +2 -2
- data/test/ral/types/zone.rb +71 -87
- data/test/util/autoload.rb +6 -21
- data/test/util/config.rb +201 -101
- data/test/util/fact_store.rb +67 -0
- data/test/util/features.rb +9 -6
- data/test/util/instance_loader.rb +53 -0
- data/test/util/loadedfile.rb +17 -1
- data/test/util/metrics.rb +54 -57
- data/test/util/posixtest.rb +8 -11
- data/test/util/utiltest.rb +31 -2
- metadata +520 -492
- data/TODO +0 -4
- data/lib/puppet/network/client/logger.rb +0 -6
- data/lib/puppet/network/handler/logger.rb +0 -52
- data/lib/puppet/rails/database/001_add_indexes.rb +0 -38
- data/lib/puppet/type/parsedtype.rb +0 -219
- data/test/network/handler/logger.rb +0 -183
data/install.rb
CHANGED
@@ -30,7 +30,7 @@
|
|
30
30
|
# 5) Install all library files ending in .rb from lib/ into Ruby's
|
31
31
|
# site_lib/version directory.
|
32
32
|
#
|
33
|
-
# $Id: install.rb
|
33
|
+
# $Id: install.rb 2580 2007-06-14 06:11:46Z luke $
|
34
34
|
#++
|
35
35
|
|
36
36
|
require 'rbconfig'
|
@@ -61,13 +61,14 @@ def glob(list)
|
|
61
61
|
end
|
62
62
|
|
63
63
|
# Set these values to what you want installed.
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
sbins = glob(%w{sbin/*})
|
65
|
+
bins = glob(%w{bin/*})
|
66
|
+
rdoc = glob(%w{bin/* sbin/* lib/**/*.rb README README-library CHANGELOG TODO Install}).reject { |e| e=~ /\.(bat|cmd)$/ }
|
67
|
+
ri = glob(%w(bin/*.rb sbin/* lib/**/*.rb)).reject { |e| e=~ /\.(bat|cmd)$/ }
|
67
68
|
libs = glob(%w{lib/**/*.rb})
|
68
69
|
tests = glob(%w{tests/**/*.rb})
|
69
70
|
|
70
|
-
def do_bins(bins, target, strip = 'bin/')
|
71
|
+
def do_bins(bins, target, strip = 's?bin/')
|
71
72
|
bins.each do |bf|
|
72
73
|
obf = bf.gsub(/#{strip}/, '')
|
73
74
|
install_binfile(bf, obf, target)
|
@@ -145,37 +146,41 @@ def prepare_installation
|
|
145
146
|
opts.parse!
|
146
147
|
end
|
147
148
|
|
148
|
-
|
149
|
+
tmpdirs = [".", ENV['TMP'], ENV['TEMP'], "/tmp", "/var/tmp"]
|
149
150
|
|
150
151
|
version = [Config::CONFIG["MAJOR"], Config::CONFIG["MINOR"]].join(".")
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
if
|
155
|
-
|
156
|
-
if
|
157
|
-
|
158
|
-
elsif
|
159
|
-
|
152
|
+
libdir = File.join(Config::CONFIG["libdir"], "ruby", version)
|
153
|
+
|
154
|
+
sitelibdir = Config::CONFIG["sitelibdir"]
|
155
|
+
if sitelibdir.nil?
|
156
|
+
sitelibdir = $:.find { |x| x =~ /site_ruby/ }
|
157
|
+
if sitelibdir.nil?
|
158
|
+
sitelibdir = File.join(libdir, "site_ruby")
|
159
|
+
elsif sitelibdir !~ Regexp.quote(version)
|
160
|
+
sitelibdir = File.join(sitelibdir, version)
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
163
164
|
if (destdir = ENV['DESTDIR'])
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
FileUtils.makedirs(
|
165
|
+
bindir = "#{destdir}#{Config::CONFIG['bindir']}"
|
166
|
+
sbindir = "#{destdir}#{Config::CONFIG['sbindir']}"
|
167
|
+
sitelibdir = "#{destdir}#{sitelibdir}"
|
168
|
+
tmpdirs << bindir
|
169
|
+
|
170
|
+
FileUtils.makedirs(bindir)
|
171
|
+
FileUtils.makedirs(sbindir)
|
172
|
+
FileUtils.makedirs(sitelibdir)
|
170
173
|
else
|
171
|
-
|
172
|
-
|
174
|
+
bindir = Config::CONFIG['bindir']
|
175
|
+
sbindir = Config::CONFIG['sbindir']
|
176
|
+
tmpdirs << Config::CONFIG['bindir']
|
173
177
|
end
|
174
178
|
|
175
|
-
InstallOptions.
|
176
|
-
InstallOptions.site_dir =
|
177
|
-
InstallOptions.bin_dir =
|
178
|
-
InstallOptions.
|
179
|
+
InstallOptions.tmp_dirs = tmpdirs.compact
|
180
|
+
InstallOptions.site_dir = sitelibdir
|
181
|
+
InstallOptions.bin_dir = bindir
|
182
|
+
InstallOptions.sbin_dir = sbindir
|
183
|
+
InstallOptions.lib_dir = libdir
|
179
184
|
end
|
180
185
|
|
181
186
|
##
|
@@ -236,7 +241,7 @@ end
|
|
236
241
|
# windows, we add an '.rb' extension and let file associations do their stuff.
|
237
242
|
def install_binfile(from, op_file, target)
|
238
243
|
tmp_dir = nil
|
239
|
-
InstallOptions.
|
244
|
+
InstallOptions.tmp_dirs.each do |t|
|
240
245
|
if File.directory?(t) and File.writable?(t)
|
241
246
|
tmp_dir = t
|
242
247
|
break
|
@@ -251,11 +256,15 @@ def install_binfile(from, op_file, target)
|
|
251
256
|
File.open(tmp_file, "w") do |op|
|
252
257
|
ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
|
253
258
|
op.puts "#!#{ruby}"
|
254
|
-
|
259
|
+
contents = ip.readlines
|
260
|
+
if contents[0] =~ /^#!/
|
261
|
+
contents.shift
|
262
|
+
end
|
263
|
+
op.write contents.join()
|
255
264
|
end
|
256
265
|
end
|
257
266
|
|
258
|
-
if Config::CONFIG["target_os"] =~ /win/io
|
267
|
+
if Config::CONFIG["target_os"] =~ /win/io and Config::CONFIG["target_os"] !~ /darwin/io
|
259
268
|
installed_wrapper = false
|
260
269
|
|
261
270
|
if File.exists?("#{from}.bat")
|
@@ -280,7 +289,6 @@ def install_binfile(from, op_file, target)
|
|
280
289
|
installed_wrapper = true
|
281
290
|
end
|
282
291
|
end
|
283
|
-
p target
|
284
292
|
FileUtils.install(tmp_file, File.join(target, op_file), :mode => 0755, :verbose => true)
|
285
293
|
File.unlink(tmp_file)
|
286
294
|
end
|
@@ -302,5 +310,6 @@ prepare_installation
|
|
302
310
|
run_tests(tests) if InstallOptions.tests
|
303
311
|
#build_rdoc(rdoc) if InstallOptions.rdoc
|
304
312
|
#build_ri(ri) if InstallOptions.ri
|
313
|
+
do_bins(sbins, InstallOptions.sbin_dir)
|
305
314
|
do_bins(bins, InstallOptions.bin_dir)
|
306
315
|
do_libs(libs)
|
data/lib/puppet.rb
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# Try to load rubygems. Hey rubygems, I hate you.
|
2
|
+
begin
|
3
|
+
require 'rubygems'
|
4
|
+
rescue LoadError
|
5
|
+
end
|
6
|
+
|
1
7
|
# see the bottom of the file for further inclusions
|
2
8
|
require 'singleton'
|
3
9
|
require 'facter'
|
@@ -19,7 +25,7 @@ require 'puppet/util/suidmanager'
|
|
19
25
|
# it's also a place to find top-level commands like 'debug'
|
20
26
|
|
21
27
|
module Puppet
|
22
|
-
PUPPETVERSION = '0.
|
28
|
+
PUPPETVERSION = '0.23.0'
|
23
29
|
|
24
30
|
def Puppet.version
|
25
31
|
return PUPPETVERSION
|
@@ -128,10 +134,22 @@ module Puppet
|
|
128
134
|
end
|
129
135
|
elsif val =~ /,/
|
130
136
|
val.split(/\s*,\s*/).sort.each do |v|
|
131
|
-
|
137
|
+
if Puppet.config.include?(v)
|
138
|
+
puts "%s = %s" % [v, Puppet[v]]
|
139
|
+
else
|
140
|
+
puts "invalid parameter: %s" % v
|
141
|
+
exit(1)
|
142
|
+
end
|
132
143
|
end
|
133
144
|
else
|
134
|
-
|
145
|
+
val.split(/\s*,\s*/).sort.each do |v|
|
146
|
+
if Puppet.config.include?(v)
|
147
|
+
puts Puppet[val]
|
148
|
+
else
|
149
|
+
puts "invalid parameter: %s" % v
|
150
|
+
exit(1)
|
151
|
+
end
|
152
|
+
end
|
135
153
|
end
|
136
154
|
exit(0)
|
137
155
|
end
|
@@ -184,6 +202,23 @@ module Puppet
|
|
184
202
|
timer
|
185
203
|
end
|
186
204
|
|
205
|
+
# Parse the config file for this process.
|
206
|
+
def self.parse_config(oldconfig = nil)
|
207
|
+
# First look for the old configuration file.
|
208
|
+
oldconfig ||= File.join(Puppet[:confdir], Puppet[:name].to_s + ".conf")
|
209
|
+
if FileTest.exists?(oldconfig) and Puppet[:name] != "puppet"
|
210
|
+
Puppet.warning "Individual config files are deprecated; remove %s and use puppet.conf" % oldconfig
|
211
|
+
Puppet.config.old_parse(oldconfig)
|
212
|
+
return
|
213
|
+
end
|
214
|
+
|
215
|
+
# Now check for the normal config.
|
216
|
+
if Puppet[:config] and File.exists? Puppet[:config]
|
217
|
+
Puppet.debug "Parsing %s" % Puppet[:config]
|
218
|
+
Puppet.config.parse(Puppet[:config])
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
187
222
|
# Relaunch the executable.
|
188
223
|
def self.restart
|
189
224
|
command = $0 + " " + self.args.join(" ")
|
@@ -393,4 +428,4 @@ if Puppet[:storeconfigs]
|
|
393
428
|
require 'puppet/rails'
|
394
429
|
end
|
395
430
|
|
396
|
-
# $Id: puppet.rb
|
431
|
+
# $Id: puppet.rb 2631 2007-06-19 23:12:23Z luke $
|
@@ -0,0 +1,60 @@
|
|
1
|
+
Puppet::Util::ConfigStore.newstore(:rest) do
|
2
|
+
desc "Store client configurations via a REST web service."
|
3
|
+
|
4
|
+
require 'net/http'
|
5
|
+
|
6
|
+
# Get a client's config. (called in collector?)
|
7
|
+
def get(client, config)
|
8
|
+
# Assuming this comes in as Puppet::Parser objects
|
9
|
+
# we may need way to choose which transport data type we use.
|
10
|
+
|
11
|
+
# hmm.. is this even useful for stored configs? I suppose there could
|
12
|
+
# be scenarios where it'd be cool, like ralsh or something.
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@host = Puppet[:puppetstorehost]
|
17
|
+
@port = Puppet[:puppetstoreport]
|
18
|
+
|
19
|
+
# Not sure if this is bad idea to share.
|
20
|
+
@http = Net::HTTP.new(@host, @port)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Store config to the web service. (called in getconfig?)
|
24
|
+
def store(client, config)
|
25
|
+
# Probably store as yaml...
|
26
|
+
puppetstore = Thread.new do
|
27
|
+
benchmark(:notice, "Stored configuration for %s" % client) do
|
28
|
+
begin
|
29
|
+
# config should come from elsewhere; probably in getconfig I assume.
|
30
|
+
# should probably allow a config option for the serialization type.
|
31
|
+
yaml = YAML.dump(config)
|
32
|
+
url = "/collector/create"
|
33
|
+
@http.post(url, yaml, { 'Content-Type' => 'text/yaml' })
|
34
|
+
rescue => detail
|
35
|
+
Puppet.err("ERROR: storeconfig failed: ", detail.to_s)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
puppetstore.run
|
40
|
+
end
|
41
|
+
|
42
|
+
# Rough first try... assuming the calling method handles the data type conversion
|
43
|
+
# Can we use a thread here? Probably needs to be the caller's thread.
|
44
|
+
def collect_exported(client, conditions)
|
45
|
+
begin
|
46
|
+
# Gotta be a better way... seems goofy to me.
|
47
|
+
# maybe using a nested rails rest route...
|
48
|
+
|
49
|
+
# filterhost so we don't get exported resources for the current client
|
50
|
+
url = "/resources?restype=exported&filterhost=#{client}"
|
51
|
+
conditions.each_pair {|k,v| url << "&#{k}=#{v}"}
|
52
|
+
res = @http.get(url)
|
53
|
+
rescue => detail
|
54
|
+
Puppet.err("ERROR: collect_exported failed: ", detail.to_s)
|
55
|
+
end
|
56
|
+
|
57
|
+
return res.body unless !res.is_a?(Net::HTTPOK)
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
data/lib/puppet/configuration.rb
CHANGED
@@ -5,6 +5,7 @@ module Puppet
|
|
5
5
|
conf = nil
|
6
6
|
var = nil
|
7
7
|
name = $0.gsub(/.+#{File::SEPARATOR}/,'').sub(/\.rb$/, '')
|
8
|
+
|
8
9
|
if name != "puppetmasterd" and Puppet::Util::SUIDManager.uid != 0
|
9
10
|
conf = File.expand_path("~/.puppet")
|
10
11
|
var = File.expand_path("~/.puppet/var")
|
@@ -14,7 +15,7 @@ module Puppet
|
|
14
15
|
var = "/var/puppet"
|
15
16
|
end
|
16
17
|
|
17
|
-
self.setdefaults(:
|
18
|
+
self.setdefaults(:main,
|
18
19
|
:confdir => [conf, "The main Puppet configuration directory. The default for this parameter is calculated based on the user. If the process
|
19
20
|
is runnig as root or the user that ``puppetmasterd`` is supposed to run as, it defaults to a system directory, but if it's running as any other user,
|
20
21
|
it defaults to being in ``~``."],
|
@@ -33,7 +34,7 @@ module Puppet
|
|
33
34
|
else
|
34
35
|
logopts = ["$vardir/log", "The Puppet log directory."]
|
35
36
|
end
|
36
|
-
setdefaults(:
|
37
|
+
setdefaults(:main, :logdir => logopts)
|
37
38
|
|
38
39
|
# This name hackery is necessary so that the rundir is set reasonably during
|
39
40
|
# unit tests.
|
@@ -43,7 +44,7 @@ module Puppet
|
|
43
44
|
rundir = "$vardir/run"
|
44
45
|
end
|
45
46
|
|
46
|
-
self.setdefaults(:
|
47
|
+
self.setdefaults(:main,
|
47
48
|
:trace => [false, "Whether to print stack traces on some errors"],
|
48
49
|
:autoflush => [false, "Whether log files should always flush to disk."],
|
49
50
|
:syslogfacility => ["daemon", "What syslog facility to use when logging to
|
@@ -124,9 +125,141 @@ module Puppet
|
|
124
125
|
]
|
125
126
|
)
|
126
127
|
|
128
|
+
hostname = Facter["hostname"].value
|
129
|
+
domain = Facter["domain"].value
|
130
|
+
if domain and domain != ""
|
131
|
+
fqdn = [hostname, domain].join(".")
|
132
|
+
else
|
133
|
+
fqdn = hostname
|
134
|
+
end
|
135
|
+
|
136
|
+
Puppet.setdefaults(:ssl,
|
137
|
+
:certname => [fqdn, "The name to use when handling certificates. Defaults
|
138
|
+
to the fully qualified domain name."],
|
139
|
+
:certdir => ["$ssldir/certs", "The certificate directory."],
|
140
|
+
:publickeydir => ["$ssldir/public_keys", "The public key directory."],
|
141
|
+
:privatekeydir => { :default => "$ssldir/private_keys",
|
142
|
+
:mode => 0750,
|
143
|
+
:desc => "The private key directory."
|
144
|
+
},
|
145
|
+
:privatedir => { :default => "$ssldir/private",
|
146
|
+
:mode => 0750,
|
147
|
+
:desc => "Where the client stores private certificate information."
|
148
|
+
},
|
149
|
+
:passfile => { :default => "$privatedir/password",
|
150
|
+
:mode => 0640,
|
151
|
+
:desc => "Where puppetd stores the password for its private key.
|
152
|
+
Generally unused."
|
153
|
+
},
|
154
|
+
:hostcsr => { :default => "$ssldir/csr_$certname.pem",
|
155
|
+
:mode => 0644,
|
156
|
+
:desc => "Where individual hosts store and look for their certificates."
|
157
|
+
},
|
158
|
+
:hostcert => { :default => "$certdir/$certname.pem",
|
159
|
+
:mode => 0644,
|
160
|
+
:desc => "Where individual hosts store and look for their certificates."
|
161
|
+
},
|
162
|
+
:hostprivkey => { :default => "$privatekeydir/$certname.pem",
|
163
|
+
:mode => 0600,
|
164
|
+
:desc => "Where individual hosts store and look for their private key."
|
165
|
+
},
|
166
|
+
:hostpubkey => { :default => "$publickeydir/$certname.pem",
|
167
|
+
:mode => 0644,
|
168
|
+
:desc => "Where individual hosts store and look for their public key."
|
169
|
+
},
|
170
|
+
:localcacert => { :default => "$certdir/ca.pem",
|
171
|
+
:mode => 0644,
|
172
|
+
:desc => "Where each client stores the CA certificate."
|
173
|
+
}
|
174
|
+
)
|
175
|
+
|
176
|
+
setdefaults(:ca,
|
177
|
+
:cadir => { :default => "$ssldir/ca",
|
178
|
+
:owner => "$user",
|
179
|
+
:group => "$group",
|
180
|
+
:mode => 0770,
|
181
|
+
:desc => "The root directory for the certificate authority."
|
182
|
+
},
|
183
|
+
:cacert => { :default => "$cadir/ca_crt.pem",
|
184
|
+
:owner => "$user",
|
185
|
+
:group => "$group",
|
186
|
+
:mode => 0660,
|
187
|
+
:desc => "The CA certificate."
|
188
|
+
},
|
189
|
+
:cakey => { :default => "$cadir/ca_key.pem",
|
190
|
+
:owner => "$user",
|
191
|
+
:group => "$group",
|
192
|
+
:mode => 0660,
|
193
|
+
:desc => "The CA private key."
|
194
|
+
},
|
195
|
+
:capub => { :default => "$cadir/ca_pub.pem",
|
196
|
+
:owner => "$user",
|
197
|
+
:group => "$group",
|
198
|
+
:desc => "The CA public key."
|
199
|
+
},
|
200
|
+
:cacrl => { :default => "$cadir/ca_crl.pem",
|
201
|
+
:owner => "$user",
|
202
|
+
:group => "$group",
|
203
|
+
:mode => 0664,
|
204
|
+
:desc => "The certificate revocation list (CRL) for the CA. Set this to 'none' if you do not want to use a CRL."
|
205
|
+
},
|
206
|
+
:caprivatedir => { :default => "$cadir/private",
|
207
|
+
:owner => "$user",
|
208
|
+
:group => "$group",
|
209
|
+
:mode => 0770,
|
210
|
+
:desc => "Where the CA stores private certificate information."
|
211
|
+
},
|
212
|
+
:csrdir => { :default => "$cadir/requests",
|
213
|
+
:owner => "$user",
|
214
|
+
:group => "$group",
|
215
|
+
:desc => "Where the CA stores certificate requests"
|
216
|
+
},
|
217
|
+
:signeddir => { :default => "$cadir/signed",
|
218
|
+
:owner => "$user",
|
219
|
+
:group => "$group",
|
220
|
+
:mode => 0770,
|
221
|
+
:desc => "Where the CA stores signed certificates."
|
222
|
+
},
|
223
|
+
:capass => { :default => "$caprivatedir/ca.pass",
|
224
|
+
:owner => "$user",
|
225
|
+
:group => "$group",
|
226
|
+
:mode => 0660,
|
227
|
+
:desc => "Where the CA stores the password for the private key"
|
228
|
+
},
|
229
|
+
:serial => { :default => "$cadir/serial",
|
230
|
+
:owner => "$user",
|
231
|
+
:group => "$group",
|
232
|
+
:desc => "Where the serial number for certificates is stored."
|
233
|
+
},
|
234
|
+
:autosign => { :default => "$confdir/autosign.conf",
|
235
|
+
:mode => 0644,
|
236
|
+
:desc => "Whether to enable autosign. Valid values are true (which
|
237
|
+
autosigns any key request, and is a very bad idea), false (which
|
238
|
+
never autosigns any key request), and the path to a file, which
|
239
|
+
uses that configuration file to determine which keys to sign."},
|
240
|
+
:ca_days => ["", "How long a certificate should be valid.
|
241
|
+
This parameter is deprecated, use ca_ttl instead"],
|
242
|
+
:ca_ttl => ["5y", "The default TTL for new certificates; valid values
|
243
|
+
must be an integer, optionally followed by one of the units
|
244
|
+
'y' (years of 365 days), 'd' (days), 'h' (hours), or
|
245
|
+
's' (seconds). The unit defaults to seconds. If this parameter
|
246
|
+
is set, ca_days is ignored. Examples are '3600' (one hour)
|
247
|
+
and '1825d', which is the same as '5y' (5 years) "],
|
248
|
+
:ca_md => ["md5", "The type of hash used in certificates."],
|
249
|
+
:req_bits => [2048, "The bit length of the certificates."],
|
250
|
+
:keylength => [1024, "The bit length of keys."],
|
251
|
+
:cert_inventory => {
|
252
|
+
:default => "$cadir/inventory.txt",
|
253
|
+
:mode => 0644,
|
254
|
+
:owner => "$user",
|
255
|
+
:group => "$group",
|
256
|
+
:desc => "A Complete listing of all certificates"
|
257
|
+
}
|
258
|
+
)
|
259
|
+
|
127
260
|
# Define the config default.
|
128
|
-
self.setdefaults(self.name,
|
129
|
-
:config => ["$confdir
|
261
|
+
self.setdefaults(self.config[:name],
|
262
|
+
:config => ["$confdir/puppet.conf",
|
130
263
|
"The configuration file for #{Puppet[:name]}."],
|
131
264
|
:pidfile => ["", "The pid file"],
|
132
265
|
:bindaddress => ["", "The address to bind to. Mongrel servers
|
@@ -137,7 +270,7 @@ module Puppet
|
|
137
270
|
speak SSL."]
|
138
271
|
)
|
139
272
|
|
140
|
-
self.setdefaults(
|
273
|
+
self.setdefaults(:puppetmasterd,
|
141
274
|
:user => ["puppet", "The user puppetmasterd should run as."],
|
142
275
|
:group => ["puppet", "The group puppetmasterd should run as."],
|
143
276
|
:manifestdir => ["$confdir/manifests",
|
@@ -176,16 +309,20 @@ module Puppet
|
|
176
309
|
:ca => [true, "Wether the master should function as a certificate authority."],
|
177
310
|
:modulepath => [ "$confdir/modules:/usr/share/puppet/modules",
|
178
311
|
"The search path for modules as a colon-separated list of
|
179
|
-
directories." ]
|
312
|
+
directories." ],
|
313
|
+
:ssl_client_header => ["HTTP_X_CLIENT_DN", "The header containing an authenticated
|
314
|
+
client's SSL DN. Only used with Mongrel. This header must be set by the proxy
|
315
|
+
to the authenticated client's SSL DN (e.g., ``/CN=puppet.reductivelabs.com``).
|
316
|
+
See the `UsingMongrel`:trac: wiki page for more information."]
|
180
317
|
)
|
181
318
|
|
182
|
-
self.setdefaults(
|
319
|
+
self.setdefaults(:puppetd,
|
183
320
|
:localconfig => { :default => "$statedir/localconfig",
|
184
321
|
:owner => "root",
|
185
322
|
:mode => 0660,
|
186
323
|
:desc => "Where puppetd caches the local configuration. An
|
187
324
|
extension indicating the cache format is added automatically."},
|
188
|
-
:classfile => { :default => "$
|
325
|
+
:classfile => { :default => "$statedir/classes.txt",
|
189
326
|
:owner => "root",
|
190
327
|
:mode => 0644,
|
191
328
|
:desc => "The file in which puppetd stores a list of the classes
|
@@ -222,14 +359,14 @@ module Puppet
|
|
222
359
|
:ca_port => ["$masterport", "The port to use for the certificate authority."]
|
223
360
|
)
|
224
361
|
|
225
|
-
self.setdefaults(
|
362
|
+
self.setdefaults(:filebucket,
|
226
363
|
:clientbucketdir => {
|
227
364
|
:default => "$vardir/clientbucket",
|
228
365
|
:mode => 0750,
|
229
366
|
:desc => "Where FileBucket files are stored locally."
|
230
367
|
}
|
231
368
|
)
|
232
|
-
self.setdefaults(
|
369
|
+
self.setdefaults(:fileserver,
|
233
370
|
:fileserverconfig => ["$confdir/fileserver.conf",
|
234
371
|
"Where the fileserver configuration is stored."]
|
235
372
|
)
|
@@ -247,7 +384,7 @@ module Puppet
|
|
247
384
|
received from the client. Each client gets a separate
|
248
385
|
subdirectory."}
|
249
386
|
)
|
250
|
-
self.setdefaults(
|
387
|
+
self.setdefaults(:puppetd,
|
251
388
|
:puppetdlockfile => [ "$statedir/puppetdlock",
|
252
389
|
"A lock file to temporarily stop puppetd from doing anything."],
|
253
390
|
:usecacheonfailure => [true,
|
@@ -263,7 +400,17 @@ module Puppet
|
|
263
400
|
change or if the server changes."
|
264
401
|
],
|
265
402
|
:downcasefacts => [false,
|
266
|
-
"Whether facts should be made all lowercase when sent to the server."]
|
403
|
+
"Whether facts should be made all lowercase when sent to the server."],
|
404
|
+
:dynamicfacts => ["memorysize,memoryfree,swapsize,swapfree",
|
405
|
+
"Facts that are dynamic; these facts will be ignored when deciding whether
|
406
|
+
changed facts should result in a recompile. Multiple facts should be
|
407
|
+
comma-separated."],
|
408
|
+
:splaylimit => ["$runinterval",
|
409
|
+
"The maximum time to delay before runs. Defaults to being the same as the
|
410
|
+
run interval."],
|
411
|
+
:splay => [false,
|
412
|
+
"Whether to sleep for a pseudo-random (but consistent) amount of time before
|
413
|
+
a run."]
|
267
414
|
)
|
268
415
|
|
269
416
|
self.setdefaults(:puppetd,
|
@@ -281,7 +428,7 @@ module Puppet
|
|
281
428
|
)
|
282
429
|
|
283
430
|
# Plugin information.
|
284
|
-
self.setdefaults(
|
431
|
+
self.setdefaults(:main,
|
285
432
|
:pluginpath => ["$vardir/plugins",
|
286
433
|
"Where Puppet should look for plugins. Multiple directories should
|
287
434
|
be colon-separated, like normal PATH variables."],
|
@@ -299,7 +446,7 @@ module Puppet
|
|
299
446
|
)
|
300
447
|
|
301
448
|
# Central fact information.
|
302
|
-
self.setdefaults(
|
449
|
+
self.setdefaults(:main,
|
303
450
|
:factpath => ["$vardir/facts",
|
304
451
|
"Where Puppet should look for facts. Multiple directories should
|
305
452
|
be colon-separated, like normal PATH variables."],
|
@@ -316,7 +463,7 @@ module Puppet
|
|
316
463
|
"What files to ignore when pulling down facts."]
|
317
464
|
)
|
318
465
|
|
319
|
-
self.setdefaults(:
|
466
|
+
self.setdefaults(:tagmail,
|
320
467
|
:tagmap => ["$confdir/tagmail.conf",
|
321
468
|
"The mapping between reporting tags and email addresses."],
|
322
469
|
:sendmail => [%x{which sendmail 2>/dev/null}.chomp,
|
@@ -326,6 +473,154 @@ module Puppet
|
|
326
473
|
:smtpserver => ["none",
|
327
474
|
"The server through which to send email reports."]
|
328
475
|
)
|
476
|
+
|
477
|
+
self.setdefaults(:facts,
|
478
|
+
:factstore => ["yaml",
|
479
|
+
"The backend store to use for client facts."]
|
480
|
+
)
|
481
|
+
|
482
|
+
self.setdefaults(:yamlfacts,
|
483
|
+
:yamlfactdir => ["$vardir/facts",
|
484
|
+
"The directory in which client facts are stored when the yaml fact store is used."]
|
485
|
+
)
|
486
|
+
|
487
|
+
self.setdefaults(:rails,
|
488
|
+
:dblocation => { :default => "$statedir/clientconfigs.sqlite3",
|
489
|
+
:mode => 0660,
|
490
|
+
:owner => "$user",
|
491
|
+
:group => "$group",
|
492
|
+
:desc => "The database cache for client configurations. Used for
|
493
|
+
querying within the language."
|
494
|
+
},
|
495
|
+
:dbadapter => [ "sqlite3", "The type of database to use." ],
|
496
|
+
:dbmigrate => [ false, "Whether to automatically migrate the database." ],
|
497
|
+
:dbname => [ "puppet", "The name of the database to use." ],
|
498
|
+
:dbserver => [ "localhost", "The database server for Client caching. Only
|
499
|
+
used when networked databases are used."],
|
500
|
+
:dbuser => [ "puppet", "The database user for Client caching. Only
|
501
|
+
used when networked databases are used."],
|
502
|
+
:dbpassword => [ "puppet", "The database password for Client caching. Only
|
503
|
+
used when networked databases are used."],
|
504
|
+
:railslog => {:default => "$logdir/rails.log",
|
505
|
+
:mode => 0600,
|
506
|
+
:owner => "$user",
|
507
|
+
:group => "$group",
|
508
|
+
:desc => "Where Rails-specific logs are sent"
|
509
|
+
}
|
510
|
+
)
|
511
|
+
|
512
|
+
setdefaults(:graphing,
|
513
|
+
:graph => [false, "Whether to create dot graph files for the different
|
514
|
+
configuration graphs. These dot files can be interpreted by tools
|
515
|
+
like OmniGraffle or dot (which is part of ImageMagick)."],
|
516
|
+
:graphdir => ["$statedir/graphs", "Where to store dot-outputted graphs."]
|
517
|
+
)
|
518
|
+
|
519
|
+
setdefaults(:transaction,
|
520
|
+
:tags => ["", "Tags to use to find resources. If this is set, then
|
521
|
+
only resources tagged with the specified tags will be applied.
|
522
|
+
Values must be comma-separated."],
|
523
|
+
:evaltrace => [false, "Whether each resource should log when it is
|
524
|
+
being evaluated. This allows you to interactively see exactly
|
525
|
+
what is being done."],
|
526
|
+
:summarize => [false,
|
527
|
+
"Whether to print a transaction summary."
|
528
|
+
]
|
529
|
+
)
|
530
|
+
|
531
|
+
setdefaults(:parser,
|
532
|
+
:typecheck => [true, "Whether to validate types during parsing."],
|
533
|
+
:paramcheck => [true, "Whether to validate parameters during parsing."]
|
534
|
+
)
|
535
|
+
|
536
|
+
setdefaults(:main,
|
537
|
+
:casesensitive => [false,
|
538
|
+
"Whether matching in case statements and selectors
|
539
|
+
should be case-sensitive. Case insensitivity is
|
540
|
+
handled by downcasing all values before comparison."],
|
541
|
+
:external_nodes => ["none",
|
542
|
+
"An external command that can produce node information. The output
|
543
|
+
must be a YAML dump of a hash, and that hash must have one or both of
|
544
|
+
``classes`` and ``parameters``, where ``classes`` is an array and
|
545
|
+
``parameters`` is a hash. For unknown nodes, the commands should
|
546
|
+
exit with a non-zero exit code.
|
547
|
+
|
548
|
+
This command makes it straightforward to store your node mapping
|
549
|
+
information in other data sources like databases."])
|
550
|
+
|
551
|
+
setdefaults(:ldap,
|
552
|
+
:ldapnodes => [false,
|
553
|
+
"Whether to search for node configurations in LDAP."],
|
554
|
+
:ldapssl => [false,
|
555
|
+
"Whether SSL should be used when searching for nodes.
|
556
|
+
Defaults to false because SSL usually requires certificates
|
557
|
+
to be set up on the client side."],
|
558
|
+
:ldaptls => [false,
|
559
|
+
"Whether TLS should be used when searching for nodes.
|
560
|
+
Defaults to false because TLS usually requires certificates
|
561
|
+
to be set up on the client side."],
|
562
|
+
:ldapserver => ["ldap",
|
563
|
+
"The LDAP server. Only used if ``ldapnodes`` is enabled."],
|
564
|
+
:ldapport => [389,
|
565
|
+
"The LDAP port. Only used if ``ldapnodes`` is enabled."],
|
566
|
+
:ldapstring => ["(&(objectclass=puppetClient)(cn=%s))",
|
567
|
+
"The search string used to find an LDAP node."],
|
568
|
+
:ldapclassattrs => ["puppetclass",
|
569
|
+
"The LDAP attributes to use to define Puppet classes. Values
|
570
|
+
should be comma-separated."],
|
571
|
+
:ldapattrs => ["all",
|
572
|
+
"The LDAP attributes to include when querying LDAP for nodes. All
|
573
|
+
returned attributes are set as variables in the top-level scope.
|
574
|
+
Multiple values should be comma-separated. The value 'all' returns
|
575
|
+
all attributes."],
|
576
|
+
:ldapparentattr => ["parentnode",
|
577
|
+
"The attribute to use to define the parent node."],
|
578
|
+
:ldapuser => ["",
|
579
|
+
"The user to use to connect to LDAP. Must be specified as a
|
580
|
+
full DN."],
|
581
|
+
:ldappassword => ["",
|
582
|
+
"The password to use to connect to LDAP."],
|
583
|
+
:ldapbase => ["",
|
584
|
+
"The search base for LDAP searches. It's impossible to provide
|
585
|
+
a meaningful default here, although the LDAP libraries might
|
586
|
+
have one already set. Generally, it should be the 'ou=Hosts'
|
587
|
+
branch under your main directory."]
|
588
|
+
)
|
589
|
+
|
590
|
+
setdefaults(:puppetmasterd,
|
591
|
+
:storeconfigs => [false,
|
592
|
+
"Whether to store each client's configuration. This
|
593
|
+
requires ActiveRecord from Ruby on Rails."]
|
594
|
+
)
|
595
|
+
|
596
|
+
# This doesn't actually work right now.
|
597
|
+
setdefaults(:parser,
|
598
|
+
:lexical => [false, "Whether to use lexical scoping (vs. dynamic)."],
|
599
|
+
:templatedir => ["$vardir/templates",
|
600
|
+
"Where Puppet looks for template files."
|
601
|
+
]
|
602
|
+
)
|
603
|
+
|
604
|
+
setdefaults(:main,
|
605
|
+
:filetimeout => [ 15,
|
606
|
+
"The minimum time to wait (in seconds) between checking for updates in
|
607
|
+
configuration files. This timeout determines how quickly Puppet checks whether
|
608
|
+
a file (such as manifests or templates) has changed on disk."
|
609
|
+
]
|
610
|
+
)
|
611
|
+
|
612
|
+
setdefaults(:metrics,
|
613
|
+
:rrddir => {:default => "$vardir/rrd",
|
614
|
+
:owner => "$user",
|
615
|
+
:group => "$group",
|
616
|
+
:desc => "The directory where RRD database files are stored.
|
617
|
+
Directories for each reporting host will be created under
|
618
|
+
this directory."
|
619
|
+
},
|
620
|
+
:rrdgraph => [false, "Whether RRD information should be graphed."],
|
621
|
+
:rrdinterval => ["$runinterval", "How often RRD should expect data.
|
622
|
+
This should match how often the hosts report back to the server."]
|
623
|
+
)
|
329
624
|
end
|
330
625
|
|
331
|
-
# $Id: configuration.rb
|
626
|
+
# $Id: configuration.rb 2587 2007-06-15 02:40:20Z luke $
|