exec { "check_presence":
command => "/bin/true",
onlyif => '/usr/bin/test -e /path',
}
file {"/home/user/test.txt":
ensure => file,
require => Exec["check_presence"]
}
I can't figure out what's wrong with my script. I use puppet apply test.pp to run this script. But no matter /path exists or not, the file test.txt was created.
I was using puppet 3.4.3. Any help is appreciated.
Related answer: https://serverfault.com/a/516919/428218
Best Answer
The only way to do this (i.e. manage the target file only if some other condition is true or false) is to create a custom fact for that condition/test and then use it to either wrap the resource in a conditional block, or use it to influence a property/parameter of the resource. For example:
Or: