Chef 中的执行顺序

sequence of execution in Chef

我对厨师有点陌生。我只是想知道厨师资源是否像 node-js。

例如,

recipe.rb

resource1 'foo' do
    property value
end

resource2 'bar' do
    property value
end

考虑 resource1 是一个重量级进程,resource2 是一个轻量级进程。在这种情况下是否可能先执行 bar 然后执行 foo?还是先按顺序执行 foo 然后 bar.

大厨菜谱必不可少,他们会运行按顺序排列。 运行 列表也是一个数组,其顺序为 运行。除非你在 运行 列表中多次定义相同的东西,否则只有第一次会 运行。

虽然厨师有两个阶段 运行。编译阶段,组织需要的资源 运行 并解析所有变量。然后是每个资源实际执行的 运行 阶段。您可以编写在编译阶段触发操作的配方,这可能会使它看起来不正常。

例如,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 代码在编译时执行,所以先出来。