From 914c9302076d89a9a31ecc3e9c113f3c67af1177 Mon Sep 17 00:00:00 2001 From: flepoutre <84913246+flepoutre@users.noreply.github.com> Date: Tue, 2 Jan 2024 12:46:10 +0000 Subject: [PATCH 1/2] Add Puppet8x support --- {tests => examples}/init.pp | 2 +- manifests/cache.pp | 42 ++++++++------- manifests/config.pp | 6 +-- manifests/init.pp | 96 +++++++++++++++++++---------------- manifests/install.pp | 6 +-- manifests/params.pp | 45 ++++++++-------- manifests/service.pp | 27 +++++----- manifests/service_defaults.pp | 2 +- 8 files changed, 120 insertions(+), 106 deletions(-) rename {tests => examples}/init.pp (96%) diff --git a/tests/init.pp b/examples/init.pp similarity index 96% rename from tests/init.pp rename to examples/init.pp index 0f9735c..289e2be 100644 --- a/tests/init.pp +++ b/examples/init.pp @@ -9,6 +9,6 @@ # Learn more about module testing here: # https://docs.puppetlabs.com/guides/tests_smoke.html # -class { '::nscd' : +class { 'nscd' : service_defaults => true, } diff --git a/manifests/cache.pp b/manifests/cache.pp index 7459b4c..7ec50b3 100644 --- a/manifests/cache.pp +++ b/manifests/cache.pp @@ -1,39 +1,45 @@ # See README.md for usage information +# +# @param enable +# @param positive_ttl +# @param negative_ttl +# @param suggested_size +# @param check_files +# @param persistent +# @param shared +# @param max_db_size +# @param auto_propagate +# define nscd::cache ( - $enable = $::nscd::params::cache_enable, - $positive_ttl = $::nscd::params::cache_positive_ttl, - $negative_ttl = $::nscd::params::cache_negative_ttl, - $suggested_size = $::nscd::params::cache_suggested_size, - $check_files = $::nscd::params::cache_check_files, - $persistent = $::nscd::params::cache_persistent, - $shared = $::nscd::params::cache_shared, - $max_db_size = $::nscd::params::cache_max_db_size, - $auto_propagate = $::nscd::params::cache_auto_propagate, + Boolean $enable = $nscd::params::cache_enable, + Optional[Integer] $positive_ttl = $nscd::params::cache_positive_ttl, + Optional[Integer] $negative_ttl = $nscd::params::cache_negative_ttl, + Integer $suggested_size = $nscd::params::cache_suggested_size, + Boolean $check_files = $nscd::params::cache_check_files, + Boolean $persistent = $nscd::params::cache_persistent, + Boolean $shared = $nscd::params::cache_shared, + Integer $max_db_size = $nscd::params::cache_max_db_size, + Optional[Boolean] $auto_propagate = $nscd::params::cache_auto_propagate, ) { # include nscd if not already defined include nscd # check that config file is being managed - if ! $::nscd::config_manage { + if ! $nscd::config_manage { fail('nscd::cache was defined but nscd::config_manage is false') } validate_re($name, '^(passwd|group|hosts|services|netgroup)$') - validate_bool($enable, $check_files, $persistent, $shared) - validate_integer($positive_ttl) - validate_integer($negative_ttl) - validate_integer($suggested_size) - validate_integer($max_db_size) if $auto_propagate { - validate_re($name, '^(passwd|group)$') + validate_re($name, '^(hosts|passwd|group)$') validate_bool($auto_propagate) } concat::fragment { "config_${name}_fragment" : - target => $::nscd::config_file, + target => $nscd::config_file, content => template("${module_name}/config_cache.erb"), order => '10', - notify => Class['::nscd::service'], + notify => Class['nscd::service'], } } diff --git a/manifests/config.pp b/manifests/config.pp index 34845b3..faff201 100644 --- a/manifests/config.pp +++ b/manifests/config.pp @@ -1,7 +1,7 @@ # PRIVATE CLASS: do not include directly class nscd::config inherits nscd { - if $::nscd::config_manage { - concat { $::nscd::config_file : + if $nscd::config_manage { + concat { $nscd::config_file : ensure => present, owner => 'root', group => 'root', @@ -12,7 +12,7 @@ } concat::fragment { 'config_header_fragment' : - target => $::nscd::config_file, + target => $nscd::config_file, content => template("${module_name}/config_header.erb"), order => '00', } diff --git a/manifests/init.pp b/manifests/init.pp index 2e6147c..68b5a30 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -1,51 +1,61 @@ # See README.md for usage information +# +# @param package_manage +# @param package_name +# @param package_ensure +# @param service_manage +# @param service_defaults +# @param service_name +# @param service_ensure +# @param service_enable +# @param service_user_manage +# @param service_user +# @param service_user_uid +# @param service_user_gid +# @param config_manage +# @param config_file +# @param log_file +# @param debug_level +# @param threads +# @param max_threads +# @param stat_user +# @param reload_count +# @param paranoia +# @param restart_interval +# class nscd ( - $package_manage = $::nscd::params::package_manage, - $package_name = $::nscd::params::package_name, - $package_ensure = $::nscd::params::package_ensure, - - $service_manage = $::nscd::params::service_manage, - $service_defaults = $::nscd::params::service_defaults, - $service_name = $::nscd::params::service_name, - $service_ensure = $::nscd::params::service_ensure, - $service_enable = $::nscd::params::service_enable, - $service_user_manage = $::nscd::params::service_user_manage, - $service_user = $::nscd::params::service_user, - $service_user_uid = $::nscd::params::service_user_uid, - $service_user_gid = $::nscd::params::service_user_gid, - - $config_manage = $::nscd::params::config_manage, - $config_file = $::nscd::params::config_file, - - $log_file = $::nscd::params::log_file, - $debug_level = $::nscd::params::debug_level, - $threads = $::nscd::params::threads, - $max_threads = $::nscd::params::max_threads, - $stat_user = $::nscd::params::stat_user, - $reload_count = $::nscd::params::reload_count, - $paranoia = $::nscd::params::paranoia, - $restart_interval = $::nscd::params::restart_interval, + Boolean $package_manage = $nscd::params::package_manage, + String $package_name = $nscd::params::package_name, + String $package_ensure = $nscd::params::package_ensure, + Boolean $service_manage = $nscd::params::service_manage, + Boolean $service_defaults = $nscd::params::service_defaults, + String $service_name = $nscd::params::service_name, + String $service_ensure = $nscd::params::service_ensure, + Boolean $service_enable = $nscd::params::service_enable, + Boolean $service_user_manage = $nscd::params::service_user_manage, + String $service_user = $nscd::params::service_user, + Integer $service_user_uid = $nscd::params::service_user_uid, + Integer $service_user_gid = $nscd::params::service_user_gid, + Boolean $config_manage = $nscd::params::config_manage, + String $config_file = $nscd::params::config_file, + String $log_file = $nscd::params::log_file, + Integer $debug_level = $nscd::params::debug_level, + Integer $threads = $nscd::params::threads, + Integer $max_threads = $nscd::params::max_threads, + Optional[String] $stat_user = $nscd::params::stat_user, + Variant[Integer, String] $reload_count = $nscd::params::reload_count, + Boolean $paranoia = $nscd::params::paranoia, + Integer $restart_interval = $nscd::params::restart_interval, ) inherits nscd::params { - validate_absolute_path($config_file) - validate_absolute_path($log_file) - validate_integer($debug_level, '', 0) - validate_integer($threads, '', 1) - validate_integer($max_threads, '', $threads) - if is_string($reload_count) { - validate_re($reload_count, '^unlimited$') - } else { - validate_integer($reload_count) - } - validate_bool($paranoia) - validate_integer($restart_interval, '', 0) + contain 'nscd::install' + contain 'nscd::config' + contain 'nscd::service' - anchor { '::nscd::begin' : } -> - class { '::nscd::install' : } -> - class { '::nscd::config' : } -> - class { '::nscd::service' : } -> - anchor { '::nscd::end' : } + Class['nscd::install'] + -> Class['nscd::config'] + ~> Class['nscd::service'] if $service_defaults { - class { '::nscd::service_defaults' : } + class { 'nscd::service_defaults' : } } } diff --git a/manifests/install.pp b/manifests/install.pp index a2ea555..f324f52 100644 --- a/manifests/install.pp +++ b/manifests/install.pp @@ -1,9 +1,9 @@ # PRIVATE CLASS: do not include directly class nscd::install { - if $::nscd::package_manage { + if $nscd::package_manage { package { 'nscd' : - ensure => $::nscd::package_ensure, - name => $::nscd::package_name, + ensure => $nscd::package_ensure, + name => $nscd::package_name, } } } diff --git a/manifests/params.pp b/manifests/params.pp index 497f718..65cdc72 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -1,33 +1,32 @@ -# PRIVATE CLASS: do not include directly class nscd::params { - $package_manage = true - $package_name = 'nscd' - $package_ensure = 'installed' + $package_manage = true + $package_name = 'nscd' + $package_ensure = 'installed' - $service_manage = true - $service_defaults = false - $service_name = 'nscd' - $service_ensure = 'running' - $service_enable = true + $service_manage = true + $service_defaults = false + $service_name = 'nscd' + $service_ensure = 'running' + $service_enable = true $service_user_manage = true - $service_user = 'nscd' - $service_user_uid = 28 - $service_user_gid = 28 + $service_user = 'nscd' + $service_user_uid = 28 + $service_user_gid = 28 - $config_manage = true - $config_file = '/etc/nscd.conf' + $config_manage = true + $config_file = '/etc/nscd.conf' - $log_file = '/var/log/nscd.log' - $debug_level = 0 - $threads = 4 - $max_threads = 32 - $stat_user = undef - $reload_count = 5 - $paranoia = false - $restart_interval = 3600 + $log_file = '/var/log/nscd.log' + $debug_level = 0 + $threads = 4 + $max_threads = 32 + $stat_user = undef + $reload_count = 5 + $paranoia = false + $restart_interval = 3600 - case $::osfamily { + case $facts['os']['family'] { 'Debian': { $service_user_shell = '/usr/sbin/nologin' } diff --git a/manifests/service.pp b/manifests/service.pp index 9f58cdf..5a297f0 100644 --- a/manifests/service.pp +++ b/manifests/service.pp @@ -1,26 +1,25 @@ # PRIVATE CLASS: do no include directly class nscd::service { - if $::nscd::service_manage { - service { $::nscd::service_name : - ensure => $::nscd::service_ensure, - enable => $::nscd::service_enable, - subscribe => Class['::nscd::config'], + if $nscd::service_manage { + service { $nscd::service_name : + ensure => $nscd::service_ensure, + enable => $nscd::service_enable, + subscribe => Class['nscd::config'], } - if $::nscd::service_user_manage { - group { $::nscd::service_user : + if $nscd::service_user_manage { + group { $nscd::service_user : ensure => present, - gid => $::nscd::service_user_uid, - } -> - - user { $::nscd::service_user : + gid => $nscd::service_user_uid, + } + -> user { $nscd::service_user : ensure => present, - uid => $::nscd::service_user_uid, + uid => $nscd::service_user_uid, comment => 'NSCD Daemon', home => '/', system => true, - shell => $::nscd::service_user_shell, - before => Service[$::nscd::service_name], + shell => $nscd::service_user_shell, + before => Service[$nscd::service_name], } } } diff --git a/manifests/service_defaults.pp b/manifests/service_defaults.pp index 3cbac48..55a7dbb 100644 --- a/manifests/service_defaults.pp +++ b/manifests/service_defaults.pp @@ -33,7 +33,7 @@ # netgroup caching is known-broken, so disable it in the default config, # see: https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1068889 nscd::cache { 'netgroup' : - enable => $::osfamily != 'Debian', + enable => $facts['os']['family'] != 'Debian', positive_ttl => 28800, negative_ttl => 20, persistent => true, From 189e61d1b82e5022359b2a3f21d5ec80d661f8e2 Mon Sep 17 00:00:00 2001 From: flepoutre <84913246+flepoutre@users.noreply.github.com> Date: Wed, 17 Jan 2024 10:10:02 +0100 Subject: [PATCH 2/2] Update cache.pp --- manifests/cache.pp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/manifests/cache.pp b/manifests/cache.pp index 7ec50b3..7265383 100644 --- a/manifests/cache.pp +++ b/manifests/cache.pp @@ -29,13 +29,6 @@ fail('nscd::cache was defined but nscd::config_manage is false') } - validate_re($name, '^(passwd|group|hosts|services|netgroup)$') - - if $auto_propagate { - validate_re($name, '^(hosts|passwd|group)$') - validate_bool($auto_propagate) - } - concat::fragment { "config_${name}_fragment" : target => $nscd::config_file, content => template("${module_name}/config_cache.erb"),