Pra*_*nth 2 chef-infra chef-recipe chef-solo
我对厨师有点陌生。我只是想知道 Chef 资源是否像 Node-js 一样。
例如,
recipe.rb
resource1 'foo' do
property value
end
resource2 'bar' do
property value
end
Run Code Online (Sandbox Code Playgroud)
考虑这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"
Run Code Online (Sandbox Code Playgroud)
ruby 块是一种为以后执行而编译的资源。
ruby 代码在编译期间执行,因此首先出现。