dev/provisioning/modules/puppi/manifests/ze.pp
changeset 28 b0b56e0f8c7f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/puppi/manifests/ze.pp	Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,35 @@
+# Define puppi::ze
+#
+# The Puppi 2.0 define that transforms any class variable in data
+# you can use with Puppi
+#
+# == Usage
+# Basic Usage:
+# puppi::ze { "openssh":
+#   variables => get_class_args(),
+# }
+#
+# puppi::ze { "openssh":
+#   variables => get_class_args(),
+#   filter    => '.*content.*|.*key.*',
+# }
+#
+define puppi::ze (
+  $variables,
+  $helper = 'standard',
+  $filter = '.*content.*|.*password.*',
+  $ensure = 'present' ) {
+
+  require puppi
+  require puppi::params
+
+  file { "puppize_${name}":
+    ensure  => $ensure,
+    path    => "${puppi::params::datadir}/${helper}_${name}.yml",
+    mode    => '0644',
+    owner   => $puppi::params::configfile_owner,
+    group   => $puppi::params::configfile_group,
+    content => inline_template("---\n<%= Hash[@variables].reject{ |k,v| k.to_s =~ /(${filter})/ }.keys.sort.map{|k| Array({k => @variables[k]}.to_yaml)[1..-1].join}.join(\"\n\") %>\n"),
+  }
+
+}