Skip to content

Commit 02c145f

Browse files
Merge branch 'feature-msgpack' of https://github.com/bastelfreak/puppetmodule into bastelfreak-feature-msgpack
Conflicts: manifests/agent.pp manifests/master.pp
2 parents f24549a + 7bdf8d4 commit 02c145f

File tree

3 files changed

+71
-18
lines changed

3 files changed

+71
-18
lines changed

manifests/agent.pp

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
# ['stringify_facts'] - Wether puppet transforms structured facts in strings or no. Defaults to true in puppet < 4, deprecated in puppet >=4 (and will default to false)
3434
# ['cron_hour'] - What hour to run if puppet_run_style is cron
3535
# ['cron_minute'] - What minute to run if puppet_run_style is cron
36+
# ['serialization_format'] - defaults to undef, otherwise it sets the preferred_serialization_format param (currently only msgpack is supported)
37+
# ['serialization_package'] - defaults to undef, if provided, we install this package, otherwise we fall back to the gem from 'serialization_format'
3638
#
3739
# Actions:
3840
# - Install and configures the puppet agent
@@ -93,6 +95,8 @@
9395
$http_proxy_port = undef,
9496
$cron_hour = '*',
9597
$cron_minute = undef,
98+
$serialization_format = undef,
99+
$serialization_package = undef,
96100
) inherits puppet::params {
97101

98102
if ! defined(User[$::puppet::params::puppet_user]) {
@@ -218,6 +222,7 @@
218222
path => $::puppet::params::puppet_conf,
219223
require => File[$::puppet::params::puppet_conf],
220224
section => 'agent',
225+
ensure => present,
221226
}
222227

223228
if (($use_srv_records == true) and ($srv_domain == undef))
@@ -227,7 +232,6 @@
227232
elsif (($use_srv_records == true) and ($srv_domain != undef))
228233
{
229234
ini_setting {'puppetagentsrv_domain':
230-
ensure => present,
231235
setting => 'srv_domain',
232236
value => $srv_domain,
233237
}
@@ -264,31 +268,26 @@
264268
}
265269

266270
ini_setting {'puppetagentenvironment':
267-
ensure => present,
268271
setting => 'environment',
269272
value => $environment,
270273
}
271274

272275
ini_setting {'puppetagentmaster':
273-
ensure => present,
274276
setting => 'server',
275277
value => $puppet_server,
276278
}
277279

278280
ini_setting {'puppetagentuse_srv_records':
279-
ensure => present,
280281
setting => 'use_srv_records',
281282
value => $use_srv_records,
282283
}
283284

284285
ini_setting {'puppetagentruninterval':
285-
ensure => present,
286286
setting => 'runinterval',
287287
value => $runinterval,
288288
}
289289

290290
ini_setting {'puppetagentsplay':
291-
ensure => present,
292291
setting => 'splay',
293292
value => $splay,
294293
}
@@ -306,39 +305,32 @@
306305
}
307306

308307
ini_setting {'puppetmasterport':
309-
ensure => present,
310308
setting => 'masterport',
311309
value => $puppet_server_port,
312310
}
313311
ini_setting {'puppetagentreport':
314-
ensure => present,
315312
setting => 'report',
316313
value => $report,
317314
}
318315
ini_setting {'puppetagentpluginsync':
319-
ensure => present,
320316
setting => 'pluginsync',
321317
value => $pluginsync,
322318
}
323319
ini_setting {'puppetagentlisten':
324-
ensure => present,
325320
setting => 'listen',
326321
value => $listen,
327322
}
328323
ini_setting {'puppetagentreportserver':
329-
ensure => present,
330324
setting => 'reportserver',
331325
value => $reportserver,
332326
}
333327
ini_setting {'puppetagentdigestalgorithm':
334-
ensure => present,
335328
setting => 'digest_algorithm',
336329
value => $digest_algorithm,
337330
}
338331
if ($templatedir != undef) and ($templatedir != 'undef')
339332
{
340333
ini_setting {'puppetagenttemplatedir':
341-
ensure => present,
342334
setting => 'templatedir',
343335
section => 'main',
344336
value => $templatedir,
@@ -353,13 +345,11 @@
353345
}
354346
}
355347
ini_setting {'puppetagentconfigtimeout':
356-
ensure => present,
357348
setting => 'configtimeout',
358349
value => $configtimeout,
359350
}
360351
if $stringify_facts != undef {
361352
ini_setting {'puppetagentstringifyfacts':
362-
ensure => present,
363353
setting => 'stringify_facts',
364354
value => $stringify_facts,
365355
}
@@ -430,4 +420,35 @@
430420
value => $http_proxy_port,
431421
}
432422
}
423+
if $serialization_format != undef {
424+
if $serialization_package != undef {
425+
package { $serialization_package:
426+
ensure => latest,
427+
}
428+
} else {
429+
if $serialization_format == 'msgpack' {
430+
unless defined(Package[$::puppet::params::ruby_dev]) {
431+
package {$::puppet::params::ruby_dev:
432+
ensure => 'latest',
433+
}
434+
}
435+
unless defined(Package['gcc']) {
436+
package {'gcc':
437+
ensure => 'latest',
438+
}
439+
}
440+
unless defined(Package['msgpack']) {
441+
package {'msgpack':
442+
ensure => 'latest',
443+
provider => 'gem',
444+
require => Package[$::puppet::params::ruby_dev, 'gcc'],
445+
}
446+
}
447+
}
448+
}
449+
ini_setting {'puppetagentserializationformatagent':
450+
setting => 'preferred_serialization_format',
451+
value => $serialization_format,
452+
}
453+
}
433454
}

manifests/master.pp

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
# ['generate_ssl_certs'] - Generate ssl certs (false to disable)
3636
# ['strict_variables'] - Makes the parser raise errors when referencing unknown variables
3737
# ['always_cache_features'] - if false (default), always try to load a feature even if a previous load failed
38+
# ['serialization_format'] - defaults to undef, otherwise it sets the preferred_serialization_format param (currently only msgpack is supported)
3839
#
3940
# Requires:
4041
#
@@ -96,8 +97,7 @@
9697
$passenger_high_performance = true,
9798
$passenger_max_requests = 10000,
9899
$passenger_stat_throttle_rate = 30,
99-
100-
100+
$serialization_format = undef,
101101
) inherits puppet::params {
102102

103103
anchor { 'puppet::master::begin': }
@@ -339,12 +339,42 @@
339339
value => $strict_variables,
340340
}
341341
}
342-
343342
validate_bool(str2bool($always_cache_features))
344343
ini_setting { 'puppetmasteralwayscachefeatures':
345344
ensure => present,
346345
setting => 'always_cache_features',
347346
value => $always_cache_features,
348347
}
348+
if $serialization_format != undef {
349+
if $serialization_package != undef {
350+
package { $serialization_package:
351+
ensure => latest,
352+
}
353+
} else {
354+
if $serialization_format == 'msgpack' {
355+
unless defined(Package[$::puppet::params::ruby_dev]) {
356+
package {$::puppet::params::ruby_dev:
357+
ensure => 'latest',
358+
}
359+
}
360+
unless defined(Package['gcc']) {
361+
package {'gcc':
362+
ensure => 'latest',
363+
}
364+
}
365+
unless defined(Package['msgpack']) {
366+
package {'msgpack':
367+
ensure => 'latest',
368+
provider => 'gem',
369+
require => Package[$::puppet::params::ruby_dev, 'gcc'],
370+
}
371+
}
372+
}
373+
}
374+
ini_setting {'puppetagentserializationformatmaster':
375+
setting => 'preferred_serialization_format',
376+
value => $serialization_format,
377+
}
378+
}
349379
anchor { 'puppet::master::end': }
350380
}

manifests/params.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
$puppet_ssldir = '/var/lib/puppet/ssl'
5151
$passenger_package = 'mod_passenger'
5252
$rack_package = 'rubygem-rack'
53+
$ruby_dev = 'ruby-devel'
5354
}
5455
'Suse': {
5556
$puppet_master_package = 'puppet-server'
@@ -73,6 +74,7 @@
7374
$puppet_ssldir = '/var/lib/puppet/ssl'
7475
$passenger_package = 'libapache2-mod-passenger'
7576
$rack_package = 'librack-ruby'
77+
$ruby_dev = 'ruby-dev'
7678
}
7779
'FreeBSD': {
7880
$puppet_agent_service = 'puppet'

0 commit comments

Comments
 (0)