class sysctl { define config ($value, $comment) { file { "sysctl_$name": path => "/etc/sysctl.conf", mode => 644, owner => root, group => root, ensure => present, } 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["sysctl_$name"], refreshonly => true, } } }