diff options
| -rw-r--r-- | README | 20 | ||||
| -rw-r--r-- | manifests/config.pp | 18 | ||||
| -rw-r--r-- | manifests/init.pp | 10 | 
3 files changed, 48 insertions, 0 deletions
| @@ -0,0 +1,20 @@ +sysctl module +------------- + +This puppet module handles the setting of variables in sysctl.conf, its +a simple module that utilizes the puppet augeas built-in type and the +sysctl binary. You must have the augeas ruby libraries installed to  +use this type. + +You can set a value and a comment for that value using this module, +some examples: + +sysctl::config { "vm.mmap_min_addr": +    value => 32768, +    comment => "Never mmap into the first 32k of memory", +}  + +sysctl::config { "fs.file-max": +    value => 65536, +    comment => "Maximum number of filehandles", +}  diff --git a/manifests/config.pp b/manifests/config.pp new file mode 100644 index 00000000..79ddd295 --- /dev/null +++ b/manifests/config.pp @@ -0,0 +1,18 @@ +define sysctl::config ($value, $comment) { + +  include sysctl + +  augeas { "sysctl_${name}": +    context => '/files/etc/sysctl.conf', +    changes => [ "set ${name} ${value}", "insert #comment before ${name}", +                 "set #comment[last()] '${comment}'" ], +    onlyif  => "get ${name} != ${value}", +    notify  => Exec["sysctl_${name}"], +  } + +  exec { "sysctl_${name}": +    command     => '/sbin/sysctl -p', +    subscribe   => File['/etc/sysctl.conf'], +    refreshonly => true, +  } +} diff --git a/manifests/init.pp b/manifests/init.pp new file mode 100644 index 00000000..43d9299e --- /dev/null +++ b/manifests/init.pp @@ -0,0 +1,10 @@ +class sysctl { + +  file { '/etc/sysctl.conf': +    ensure => present, +    mode   => '0644', +    owner  => root, +    group  => root +  } +} + | 
