Puppet Testing if a file exist
17,034
Solution 1
The "native" way to do this without execs if you're on Puppet 2.6.6+:
file { '/path/to/myfile':
ensure => 'present',
audit => 'all',
}
(This functionality exists since Puppet 2.6.0, but there were a number of issues with auditing that only really got hammered out with the 2.6.6 release.)
If you're on an older version, you can also tell the resource to run in noop
mode, which will just display a message when Puppet is run and the file doesn't exist:
file { '/path/to/myfile':
ensure => 'present',
noop => 'true',
}
Solution 2
You should create yours own function or use exec with onlyif command. something like :
exec { "mycommand":
path => "/usr/bin:/usr/sbin:/bin",
onlyif => "test -f /etc/blalba" //yours command
}
Author by
bazic
Updated on June 23, 2022Comments
-
bazic less than a minute
Im looking for a way to test if a file exist in my client (just test not creation). I've found the way (File.exists) in chef but that wasn't simple with puppet.
Thanks in advance.
-
shakalandy about 11 yearsensure => present will create the file if its not existing. bazic only wants to test and not create it. See docs: docs.puppetlabs.com/references/stable/type.html#file
-
bazic about 11 yearsThanks,but nothing interesting in docs.
-
MealstroM about 11 yearsive updated my my answer
-
freiheit about 11 years@MealstroM: Wouldn't "
creates => '/etc/blabla'
" be better than an "onlyif
"? -
MealstroM about 11 years@freiheit
creates =>...
is something different. it means thatexec command
should create file increates =>
and if there is no this file than the command runs. and if you just want to check some /run/pid this command isnt good. and withonlyif
you can check empty or not the file is :D -
MealstroM about 11 yearsyeah. this is great with new version ov puppet. ive been working with pre 2.6.0 and have to write my own ruby function for file exist/empty check.
-
freiheit about 11 years@MealstroM: In this particular case,
creates
would have the same result and be much simpler (and a bit faster). Yes, in generalonlyif
does provide more flexibility.