Eu também estava com dificuldades para descobrir como impedir que um módulo fosse executado se um diretório não estivesse presente. Isso é o que eu achei que funcionou para mim.
exec { 'module_name':
command => "command to run with variables", # Double quotes for Variable interpolation
path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:",
onlyif => 'test -d /mydirectory',
}
Adicionando o caminho é o que realmente fez o truque para mim. Por algum motivo, mesmo que eu tenha adicionado o caminho para o comando de teste, como /bin/test
, ele não funcionou corretamente.
Espero que isso ajude outras pessoas que possam estar tendo o mesmo problema.