dev/provisioning/modules/puppi/manifests/init.pp
changeset 28 b0b56e0f8c7f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dev/provisioning/modules/puppi/manifests/init.pp	Fri Jan 15 15:35:00 2016 +0100
@@ -0,0 +1,77 @@
+# = Class: puppi
+#
+# This is Puppi NextGen
+# Includes both first generation of Puppi and the
+# NextGen developments and modules integration
+#
+# == Parameters
+#
+# [*version*]
+#   Define the Puppi version to use:
+#   1 - First generation of Puppi, compatible with old modules
+#   2 - NextGen version. Intended to work with NextGen modules
+#   Default: 1 , for the moment
+#
+# [*install_dependencies*]
+#   Set to false if you want to manage the sofware puppi needs
+#   with your local modules.
+#
+# [*template*]
+#   Sets the path to a custom template for /etc/puppi/puppi.conf
+#
+# [*helpers_class*]
+#   Name of the class there default helpers are defined
+#   (Used on in Puppi 2)
+#
+# [*logs_retention_days*]
+#   Number of days for retenton of puppi logs. Default 30
+#   This option creates a script in /etc/cron.daily that purges
+#   all the old logs. Set to false or to 0 to remove the purge script.
+#
+# [*extra_class*]
+#   Name of the class where extra puppi resources are added
+#   Here, by default are placed general system commands for
+#   puppi info, check and log
+#
+class puppi (
+  $version              = params_lookup( 'version' ),
+  $install_dependencies = params_lookup( 'install_dependencies' ),
+  $template             = params_lookup( 'template' ),
+  $helpers_class        = params_lookup( 'helpers_class' ),
+  $logs_retention_days  = params_lookup( 'logs_retention_days' ),
+  $extra_class          = params_lookup( 'extra_class' )
+  ) inherits puppi::params {
+
+  $bool_install_dependencies=any2bool($install_dependencies)
+
+  # Manage Version
+  $puppi_ensure = $puppi::version ? {
+    '1' => '/usr/sbin/puppi.one',
+    '2' => '/usr/local/bin/puppi',
+  }
+
+  file { 'puppi.link':
+    ensure => $puppi_ensure,
+    path   => '/usr/sbin/puppi',
+  }
+
+  # Puppi version one is always installed
+  include puppi::one
+
+  # Puppi 2 gem (still experimental) is installed only when forced
+  if $puppi::version == '2' {
+    include puppi::two
+  }
+
+  # Create Puppi common dirs and scripts
+  include puppi::skel
+
+  # Include extra resources
+  include $puppi::extra_class
+
+  # Include some packages needed by Puppi
+  if $bool_install_dependencies {
+    include puppi::dependencies
+  }
+
+}