Documentation of the ncm-nscd component

Puppet style [ Borrowed from the production env ]

Manifests: Template:

|-- config.pp -- nscd.conf.erb
|-- init.pp
|-- install.pp
`-- service.pp


Template:

# Configuration file installed from nscd puppet
# module.

# /etc/nscd.conf
#
#
# An example Name Service Cache config file. This file is needed by nscd.
#
# Legal entries are:
#
# logfile <file>
# debug-level <level>
# threads <initial #threads to use>
# max-threads <maximum #threads to use>
# server-user <user to run server as instead of root>
# server-user is ignored if nscd is started with -S parameters
# stat-user <user who is allowed to request statistics>
# reload-count unlimited|<number>
# paranoia <yes|no>
# restart-interval <time in seconds>
#
# enable-cache <service> <yes|no>
# positive-time-to-live <service> <time in seconds>
# negative-time-to-live <service> <time in seconds>
# suggested-size <service> <prime number>
# check-files <service> <yes|no>
# persistent <service> <yes|no>
# shared <service> <yes|no>
# max-db-size <service> <number bytes>
# auto-propagate <service> <yes|no>
#
# Currently supported cache names (services): passwd, group, hosts, services
#


# logfile /var/log/nscd.log
# threads 4
# max-threads 32
server-user nscd
# stat-user somebody
debug-level 0
# reload-count 5
paranoia <%= @nscd_paranoia %>
restart-interval <%= @nscd_restart_interval %>

enable-cache passwd <%= @nscd_passwd_cache %>
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd yes
shared passwd yes
max-db-size passwd 33554432
auto-propagate passwd yes

enable-cache group <%= @nscd_group_cache %>
positive-time-to-live group 3600
negative-time-to-live group 60
suggested-size group 211
check-files group yes
persistent group yes
shared group yes
max-db-size group 33554432
auto-propagate group yes

enable-cache hosts <%= @nscd_hosts_cache %>
positive-time-to-live hosts 3600
negative-time-to-live hosts 20
suggested-size hosts 211
check-files hosts yes
persistent hosts yes
shared hosts yes
max-db-size hosts 33554432

<% unless @osfamily == 'RedHat' and @operatingsystemrelease.to_f < 6.0 -%>
enable-cache services yes
positive-time-to-live services 28800
negative-time-to-live services 20
suggested-size services 211
check-files services yes
persistent services yes
shared services yes
max-db-size services 33554432
<% end -%>


Manifests:

1) install.pp

class nscd::install {

package{'nscd':
ensure => 'present'
}

}

2) config.pp

class nscd::config ($nscd_hosts_cache = hiera('nscd_hosts_cache','yes'),
$nscd_passwd_cache = hiera('nscd_passwd_cache','no'),
$nscd_group_cache = hiera('nscd_group_cache','no'),
$nscd_paranoia = hiera('nscd_paranoia','yes'),
$nscd_restart_interval = hiera('nscd_restart_interval','3600')
) {


if ! ( $nscd_hosts_cache in ['yes','no'] ) {
fail("nscd_hosts_cache must be yes or no")
}
if ! ( $nscd_passwd_cache in ['yes','no'] ) {
fail("nscd_hosts_cache must be yes or no")
}
if ! ( $nscd_group_cache in ['yes','no'] ) {
fail("nscd_hosts_cache must be yes or no")
}
if ! ( $nscd_paranoia in ['yes','no'] ) {
fail("nscd_paranoia must be yes or no")
}


file{'/etc/nscd.conf':
ensure => present,
content => template('nscd/nscd.conf.erb'),
require => Package['nscd'],
notify => Service['nscd'],
mode => 0644,
owner => root,
group => root
}
}

3) service.pp

class nscd::service {

service{'nscd':
ensure => running,
enable => true,
hasstatus => true,
hasrestart => true,
require => Class['nscd::config'],
subscribe => Class['nscd::config']
}
}

4) init.pp

class nscd {
class{'nscd::install':}
class{'nscd::config':}
class{'nscd::service':}

Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2015-11-05 - AristeidisBoutselis
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback