Ich versuche, eine Funktion in Puppet zu schreiben, die eine ausführt, fail
wenn der übergebene Verzeichnispfad nicht existiert.
if File["/some/path"]
Gibt immer true zurück und if defined(File["/some/path"])
nur dann true, wenn die Ressource in puppet definiert ist, unabhängig davon, ob sie tatsächlich vorhanden ist.
Gibt es eine Möglichkeit, dies mit einer einfachen if
Aussage zu tun ?
Vielen Dank
Antworten:
Problemumgehung: Verwenden Sie onlyif für einen ausführbaren "Test" und fordern Sie ihn in Ihrer Aktion an, die Sie ausführen möchten:
quelle
Auch ich hatte Schwierigkeiten herauszufinden, wie ich verhindern kann, dass ein Modul ausgeführt wird, wenn kein Verzeichnis vorhanden ist. Dies ist, was ich fand, dass für mich gearbeitet hat.
Das Hinzufügen des Pfades hat mir wirklich geholfen. Aus irgendeinem Grund, auch wenn ich den Pfad zum Testbefehl hinzugefügt habe, da
/bin/test
er anscheinend nicht richtig funktioniert hat.Hoffe, dies hilft anderen, die möglicherweise das gleiche Problem haben.
quelle
Sie können dafür auch die integrierte Funktion find_file () verwenden. Sie gibt undef zurück, wenn die Datei / der Pfad nicht vorhanden ist, und eine Zeichenfolge, wenn sie vorhanden ist.
https://puppet.com/docs/puppet/5.5/function.html#findfile
quelle