Workaround for this: use onlyif on an exec "test" and require it in your action you want to execute:
exec {"check_presence":
command => '/bin/true',
onlyif => '/usr/bin/test -e /path/must/be/available',
}
whatever {"foo...":
.....
require => Exec["check_presence"],
}
Мне тоже было трудно понять, как предотвратить запуск модуля, если каталог не существует. Это то, что я обнаружил, сработало для меня.
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',
}
Добавление пути - вот что действительно помогло мне. По какой-то причине, даже если я добавил путь к тестовой команде, такой как / bin / test
, похоже, он работал неправильно.
Надеюсь, это поможет другим, у кого может быть такая же проблема.