Check directory before creating file in puppet?
20,111
You should be able to simply use a require
statement in your a.conf
file resource:
file{"/path/to/directory":
ensure => directory,
mode => 0755,
}
file{"/path/to/config":
ensure => directory,
mode => 0755,
}
file{"/path/to/config/a.conf":
ensure => file,
mode => 0755,
content => template("config_template.conf"),
require => File["/path/to/directory"],
}
This will make sure that the directory will be created before the file.
Related videos on Youtube
Author by
skantana
Updated on September 18, 2022Comments
-
skantana almost 2 years
I'm trying to make a function which directory/file will be created only when the first directory exists, of not it must be skipped because of failed dependence.
I've tried this "onlyif" workaround, but unfortunately it doesn't work with my function.
$check_directory = file("/path/to/directory") if($check_directory != '') { file{"/path/to/config": ensure => directory, mode => 0755, } file{"/path/to/config/a.conf": ensure => file, mode => 0755, content => template("config_template.conf"), } }
I've got an error:
Error: Is a directory - /path/to/directory
Is there a way to do any other if statement? Or any parameter? Thank you.
-
skantana almost 9 yearsThanks for the answer, but it's difference directory. I would like to check another path to configuration, not the one that will be created. if I do so, I will get .. Error: Could not find dependency
-
FooBee almost 9 yearsThen you have to add a file resource for that new directory and then use
require
with that resource. See my edited answer. -
FooBee almost 9 yearsSorry, now I got it. But the sample code you wrote doesn't use the
onlyif
trick you linked to. So I am still confused - what exactly did you try and what didn't work. Please read How to ask better questions on Serverfault to avoid wasting your and our time.