我对厨师有点新意。我只是想知道厨师资源是否像node-js一样。
例如,
recipe.rb
resource1 'foo' do
property value
end
resource2 'bar' do
property value
end
考虑resource1
是一个重量级的过程,resource2
是一个轻量级的过程。在这种情况下,bar
是否可能首先执行,然后foo
?或者首先按顺序执行foo
,然后执行bar
。
答案 0 :(得分:3)
厨师食谱势在必行,它们将按顺序运行。运行列表也是一个将按顺序运行的数组。除非您多次在运行列表中定义相同的内容,否则只会运行第一个。
虽然厨师经营有两个阶段。编译阶段,用于组织需要运行的资源并解决所有变量。然后是运行阶段,其中每个资源实际执行。您可以编写在编译阶段触发操作的配方,这可能使其看起来无序。
例如,chef_gem
资源旨在在编译阶段执行操作,以便在运行阶段可以使用gem。 compile_time
选项可用于关闭此功能。
对于一个功能性的例子......
ruby_block "later" do
block do
Chef::Log.info "I am first in the file"
end
end
Chef::Log.info "I am second in the file"
ruby块是一个被编译以供以后执行的资源 ruby代码在编译期间执行,因此首先出现。