diff --git a/sysctl/manifests/init.pp b/sysctl/manifests/init.pp index 18831fe..d370a4c 100644 --- a/sysctl/manifests/init.pp +++ b/sysctl/manifests/init.pp @@ -29,3 +29,29 @@ define sysctl::set($value) { } } + + +# Set block device scheduler. +# +# === Parameters +# +# $name: +# Device name. +# $scheduler: +# Scheduler name. +# +# === Sample usage +# +# sysctl::block::scheduler { "vda": +# scheduler => "noop", +# } +# +define sysctl::block::scheduler($scheduler) { + + exec { "sysctl-${name}-scheduler": + path => "/bin:/usr/bin:/sbin:/usr/sbin", + command => "echo '${scheduler}' >/sys/block/${name}/queue/scheduler", + unless => "fgrep -q '[${scheduler}]' /sys/block/${name}/queue/scheduler", + } + +}