平台中立的方式在Chef Recipe中创建临时文件

时间:2014-12-17 12:56:24

标签: chef chef-recipe

我有一个厨师食谱,使用模板生成和xml文档。该文档在文件系统上的位置并不重要;只需要将位置传递给命令行工具,该工具将读取文件并使用它来配置应用程序。除了执行命令之外,xml文件不需要持久化。因此,在我看来,该文件应该在平台中立的临时文件目录中创建。 Windows上的C:\ Temp或大多数nix机器上的/ TMP。 Chef是否提供了创建临时文件,检测临时文件位置或以其他方式实现目标的方法?

1 个答案:

答案 0 :(得分:12)

最好的选择:使用厨师用来存储瞬态数据的Chef::Config['file_cache_path']。我:template "#{Chef::Config['file_cache_path']}/myfile.xml" do

评论后留下(改写),因为它仍然值得一般用于那里:

根据评论,执行资源无论如何都将使用此输入运行以确保相应地配置应用程序,文件必须仅在执行资源运行时存在,对于其他情况,请记住以下内容

厨师背后的一个关键理念是幂等,厨师可以跑100次,只在需要完成时做事。

在这种情况下,模板将生成一次,除非属性中的参数发生更改,否则永远不会更改。

在这种情况下(应该更新生成的文件),厨师会注意到它,替换它并根据其上定义的任何通知采取相应行动。