Skip to content

Commit 2760ddf

Browse files
committed
Merge remote-tracking branch 'origin/feature-msgpack' into feature-nginx
2 parents 9d234c7 + 7bdf8d4 commit 2760ddf

File tree

3 files changed

+71
-16
lines changed

3 files changed

+71
-16
lines changed

manifests/agent.pp

Lines changed: 36 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
# ['templatedir'] - Template dir, if unset it will remove the setting.
2828
# ['configtimeout'] - How long the client should wait for the configuration to be retrieved before considering it a failure
2929
# ['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)
30+
# ['serialization_format'] - defaults to undef, otherwise it sets the preferred_serialization_format param (currently only msgpack is supported)
31+
# ['serialization_package'] - defaults to undef, if provided, we install this package, otherwise we fall back to the gem from 'serialization_format'
3032
#
3133
# Actions:
3234
# - Install and configures the puppet agent
@@ -66,6 +68,8 @@
6668
$digest_algorithm = $::puppet::params::digest_algorithm,
6769
$configtimeout = '2m',
6870
$stringify_facts = undef,
71+
$serialization_format = undef,
72+
$serialization_package = undef,
6973
) inherits puppet::params {
7074

7175
if ! defined(User[$::puppet::params::puppet_user]) {
@@ -187,6 +191,7 @@
187191
path => $::puppet::params::puppet_conf,
188192
require => File[$::puppet::params::puppet_conf],
189193
section => 'agent',
194+
ensure => present,
190195
}
191196

192197
if (($use_srv_records == true) and ($srv_domain == undef))
@@ -196,7 +201,6 @@
196201
elsif (($use_srv_records == true) and ($srv_domain != undef))
197202
{
198203
ini_setting {'puppetagentsrv_domain':
199-
ensure => present,
200204
setting => 'srv_domain',
201205
value => $srv_domain,
202206
}
@@ -233,69 +237,57 @@
233237
}
234238

235239
ini_setting {'puppetagentenvironment':
236-
ensure => present,
237240
setting => 'environment',
238241
value => $environment,
239242
}
240243

241244
ini_setting {'puppetagentmaster':
242-
ensure => present,
243245
setting => 'server',
244246
value => $puppet_server,
245247
}
246248

247249
ini_setting {'puppetagentuse_srv_records':
248-
ensure => present,
249250
setting => 'use_srv_records',
250251
value => $use_srv_records,
251252
}
252253

253254
ini_setting {'puppetagentruninterval':
254-
ensure => present,
255255
setting => 'runinterval',
256256
value => $runinterval,
257257
}
258258

259259
ini_setting {'puppetagentsplay':
260-
ensure => present,
261260
setting => 'splay',
262261
value => $splay,
263262
}
264263

265264
ini_setting {'puppetmasterport':
266-
ensure => present,
267265
setting => 'masterport',
268266
value => $puppet_server_port,
269267
}
270268
ini_setting {'puppetagentreport':
271-
ensure => present,
272269
setting => 'report',
273270
value => $report,
274271
}
275272
ini_setting {'puppetagentpluginsync':
276-
ensure => present,
277273
setting => 'pluginsync',
278274
value => $pluginsync,
279275
}
280276
ini_setting {'puppetagentlisten':
281-
ensure => present,
282277
setting => 'listen',
283278
value => $listen,
284279
}
285280
ini_setting {'puppetagentreportserver':
286-
ensure => present,
287281
setting => 'reportserver',
288282
value => $reportserver,
289283
}
290284
ini_setting {'puppetagentdigestalgorithm':
291-
ensure => present,
292285
setting => 'digest_algorithm',
293286
value => $digest_algorithm,
294287
}
295288
if ($templatedir != undef) and ($templatedir != 'undef')
296289
{
297290
ini_setting {'puppetagenttemplatedir':
298-
ensure => present,
299291
setting => 'templatedir',
300292
section => 'main',
301293
value => $templatedir,
@@ -310,15 +302,44 @@
310302
}
311303
}
312304
ini_setting {'puppetagentconfigtimeout':
313-
ensure => present,
314305
setting => 'configtimeout',
315306
value => $configtimeout,
316307
}
317308
if $stringify_facts != undef {
318309
ini_setting {'puppetagentstringifyfacts':
319-
ensure => present,
320310
setting => 'stringify_facts',
321311
value => $stringify_facts,
322312
}
323313
}
314+
if $serialization_format != undef {
315+
if $serialization_package != undef {
316+
package { $serialization_package:
317+
ensure => latest,
318+
}
319+
} else {
320+
if $serialization_format == 'msgpack' {
321+
unless defined(Package[$::puppet::params::ruby_dev]) {
322+
package {$::puppet::params::ruby_dev:
323+
ensure => 'latest',
324+
}
325+
}
326+
unless defined(Package['gcc']) {
327+
package {'gcc':
328+
ensure => 'latest',
329+
}
330+
}
331+
unless defined(Package['msgpack']) {
332+
package {'msgpack':
333+
ensure => 'latest',
334+
provider => 'gem',
335+
require => Package[$::puppet::params::ruby_dev, 'gcc'],
336+
}
337+
}
338+
}
339+
}
340+
ini_setting {'puppetagentserializationformatagent':
341+
setting => 'preferred_serialization_format',
342+
value => $serialization_format,
343+
}
344+
}
324345
}

manifests/master.pp

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
# ['disable_master'] - this disables the normal master, the server will only act as a CA, currently only supported by nginx
4343
# ['upstream'] - define additional masters reachable via tcp as an array, currently only supported by nginx
4444
# ['backend_process_number'] - number of processes to start on the backebd webserver (unicorn/passenger), currently only supported by unicorn
45+
# ['serialization_format'] - defaults to undef, otherwise it sets the preferred_serialization_format param (currently only msgpack is supported)
4546
#
4647
# Requires:
4748
#
@@ -105,6 +106,7 @@
105106
$disable_master = $::puppet::params::disable_master,
106107
$upstream = $::puppet::params::upstream,
107108
$backend_process_number = $::puppet::params::backend_process_number,
109+
$serialization_format = undef,
108110
) inherits puppet::params {
109111

110112
anchor { 'puppet::master::begin': }
@@ -353,6 +355,36 @@
353355
setting => 'digest_algorithm',
354356
value => $digest_algorithm,
355357
}
356-
358+
if $serialization_format != undef {
359+
if $serialization_package != undef {
360+
package { $serialization_package:
361+
ensure => latest,
362+
}
363+
} else {
364+
if $serialization_format == 'msgpack' {
365+
unless defined(Package[$::puppet::params::ruby_dev]) {
366+
package {$::puppet::params::ruby_dev:
367+
ensure => 'latest',
368+
}
369+
}
370+
unless defined(Package['gcc']) {
371+
package {'gcc':
372+
ensure => 'latest',
373+
}
374+
}
375+
unless defined(Package['msgpack']) {
376+
package {'msgpack':
377+
ensure => 'latest',
378+
provider => 'gem',
379+
require => Package[$::puppet::params::ruby_dev, 'gcc'],
380+
}
381+
}
382+
}
383+
}
384+
ini_setting {'puppetagentserializationformatmaster':
385+
setting => 'preferred_serialization_format',
386+
value => $serialization_format,
387+
}
388+
}
357389
anchor { 'puppet::master::end': }
358390
}

manifests/params.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
$puppet_ssldir = '/var/lib/puppet/ssl'
5757
$passenger_package = 'mod_passenger'
5858
$rack_package = 'rubygem-rack'
59+
$ruby_dev = 'ruby-devel'
5960
}
6061
'Suse': {
6162
$puppet_master_package = 'puppet-server'
@@ -79,6 +80,7 @@
7980
$puppet_ssldir = '/var/lib/puppet/ssl'
8081
$passenger_package = 'libapache2-mod-passenger'
8182
$rack_package = 'librack-ruby'
83+
$ruby_dev = 'ruby-dev'
8284
}
8385
'FreeBSD': {
8486
$puppet_agent_service = 'puppet'

0 commit comments

Comments
 (0)