Chef infra 厨师的执行顺序

Chef infra 厨师的执行顺序,chef-infra,chef-recipe,chef-solo,Chef Infra,Chef Recipe,Chef Solo,我对厨师有点陌生。我只是想知道chef资源是否像node js 比如说, recipe.rb resource1 'foo' do property value end resource2 'bar' do property value end 考虑到resource1是一个很重的过程,而resource2是一个很轻的过程。在这种情况下,是否可能先执行bar,然后执行foo?或者它将以顺序的方式首先执行foo,然后执行bar厨师食谱是必需的,它们将按顺序运行。运行列表也是一个

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

比如说,

recipe.rb

resource1 'foo' do
    property value
end

resource2 'bar' do
    property value
end

考虑到
resource1
是一个很重的过程,而
resource2
是一个很轻的过程。在这种情况下,是否可能先执行
bar
,然后执行
foo
?或者它将以顺序的方式首先执行
foo
,然后执行
bar

厨师食谱是必需的,它们将按顺序运行。运行列表也是一个数组,它将按顺序运行。除非在运行列表中多次定义相同的内容,否则将只运行第一个

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

例如,资源设计用于在编译阶段执行操作,因此GEM在运行阶段可用。
compile\u 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代码是在编译过程中执行的,因此首先出现

厨师食谱是必不可少的,它们将按顺序运行。运行列表也是一个数组,它将按顺序运行。除非在运行列表中多次定义相同的内容,否则将只运行第一个

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

例如,资源设计用于在编译阶段执行操作,因此GEM在运行阶段可用。
compile\u 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代码是在编译过程中执行的,因此首先出现

“like node js”不是一个非常有用的描述。毕竟,节点可能有一个异步模型,但仍然有按顺序执行的命令。毕竟,Node可能有一个异步模型,但仍然有按顺序执行的命令。感谢@CharlesDuffyJust一点精度,如果配方在运行列表中声明多次,它将只保留第一个位置,不会再次包含在运行列表中。此外,Ruby代码在编译过程中的任何时候都有可能对资源进行重新排序,因此值得一提的是,重新排序可能会在资源集合中的资源聚合之前改变一些事情。如果一个配方在运行列表中声明了不止一次,它将只保留第一个位置,不会再次包含在运行列表中。此外,Ruby代码在编译过程中的任何时候都可能对资源重新排序,因此值得一提的是,重新排序可能会在资源集合中的资源聚合之前发生变化。