主厨配方执行顺序

我正在编写一个配方,从源代码编译和安装应用程序,但也更改应用程序完成安装时创build的目录中的configuration文件。 配方看起来像这样:

bash "install inspircd from source" do ... code <<-EOH .... make && \ make install EOH end ... # Copy over the configuration template template "<config dir>/inspircd.conf" do source "inspircd.conf.erb" .... end 

根据这些文档 ,“资源按其出现的顺序执行”。 但是Chef似乎并没有按照它们出现的顺序执行它,因为它试图把模板文件放到一个只有在make安装完成后才创build的目录中。

厨师是否同时执行配方? 有没有办法阻止执行,直到bash命令完成? 任何帮助,将不胜感激。 谢谢。

它应该按顺序运行。 如果你得到这个错误,我认为你可能在bash块有问题。

无论如何,你可以在模板中做一个“only_if”。 就像是:

 template "<config dir>/inspircd.conf" do source "inspircd.conf.erb" .... only_if "test -d <config dir>" end 

http://wiki.opscode.com/display/chef/Resources#Resources-ConditionalExecution