Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chef infra 厨师长资源克隆-是什么?_Chef Infra - Fatal编程技术网

Chef infra 厨师长资源克隆-是什么?

Chef infra 厨师长资源克隆-是什么?,chef-infra,Chef Infra,我试图获得更多关于厨师资源克隆到底是什么的信息。我在主厨-客户跑步时看到它们,但不知道它们是什么意思 我在下面看到了这个关于资源克隆的博客,但我还是搞不懂它的作用。有人有关于这个话题的更多信息吗?在谷歌上找不到其他的东西 chef客户端将按资源定义的类型和名称合并资源定义(在您的示例中为service[apache2])。如果您正在编写包装器食谱,请查看这篇伟大的文章:来自Julian Dunn 无论如何,您可以修改以前定义的资源。就你而言: resources('service[apache2

我试图获得更多关于厨师资源克隆到底是什么的信息。我在主厨-客户跑步时看到它们,但不知道它们是什么意思

我在下面看到了这个关于资源克隆的博客,但我还是搞不懂它的作用。有人有关于这个话题的更多信息吗?在谷歌上找不到其他的东西


chef客户端将按资源定义的类型和名称合并资源定义(在您的示例中为
service[apache2]
)。如果您正在编写包装器食谱,请查看这篇伟大的文章:来自Julian Dunn

无论如何,您可以修改以前定义的资源。就你而言:

resources('service[apache2]').action [:enable, :start]
这将修改已定义的资源
服务[apache2]
并隐藏资源克隆警告。

弃用: Chef允许使用重复的名称创建资源,而不是将其视为错误。这意味着多个Cookbook可以请求安装相同的包,而无需仔细创建唯一的名称。这是有问题的,因为有多个名为相同的资源使得不可能安全地将通知传递到正确的资源

Chef 12和更早版本中的行为(现在已被弃用)是,我们将尝试克隆现有资源,然后应用新资源中的任何属性。例如:

file "/etc/my_file" do
  owner "ken"
end

file "/etc/my_file" do
  mode "0755"
end
将导致第二个实例具有以下属性:

file "/etc/my_file" do
  owner "ken"
  mode "0755"
end

资源克隆在Chef 10.18.0中被弃用,并将在Chef 13中删除。

我确信这篇文章在解释它方面做得很好。。。您对什么感到困惑?例如,假设我有以下两个资源“”“服务”apache2“执行操作:启用结束“””和“”“服务”apache2“执行操作:开始结束“”,它们在不同的食谱中。当它被克隆时,这是否意味着启动apache的服务丢失了?还是将它们合并?食谱中的资源将被合并到烹饪书中。这是一种非常令人困惑、令人毛骨悚然的远距离行为,很难推理。这就是它被移除的原因。我明白了。例如,如果发生了什么。我有一个角色,它做以下事情。recipe1安装apache->recipe-2-somechanges\u也\u编辑\u apache.conf->recipe3启动apache。在这种情况下,如果我合并,我会丢失我希望它运行的序列。我知道这个要求毫无意义,但实际上只是为了理解克隆背后的理论。谢谢你的帮助!