diff options
-rw-r--r-- | puppet/modules/sysctl/README | 20 | ||||
-rw-r--r-- | puppet/modules/sysctl/manifests/config.pp | 18 | ||||
-rw-r--r-- | puppet/modules/sysctl/manifests/init.pp | 10 |
3 files changed, 48 insertions, 0 deletions
diff --git a/puppet/modules/sysctl/README b/puppet/modules/sysctl/README new file mode 100644 index 00000000..a3980f70 --- /dev/null +++ b/puppet/modules/sysctl/README @@ -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/puppet/modules/sysctl/manifests/config.pp b/puppet/modules/sysctl/manifests/config.pp new file mode 100644 index 00000000..79ddd295 --- /dev/null +++ b/puppet/modules/sysctl/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/puppet/modules/sysctl/manifests/init.pp b/puppet/modules/sysctl/manifests/init.pp new file mode 100644 index 00000000..43d9299e --- /dev/null +++ b/puppet/modules/sysctl/manifests/init.pp @@ -0,0 +1,10 @@ +class sysctl { + + file { '/etc/sysctl.conf': + ensure => present, + mode => '0644', + owner => root, + group => root + } +} + |