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 代码在编译时执行,所以先出来。
我对厨师有点陌生。我只是想知道厨师资源是否像 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 代码在编译时执行,所以先出来。