Chef infra 何谓';通过'收敛;
我是Chef infra 何谓';通过'收敛;,chef-infra,Chef Infra,我是chef的新手,刚刚开始使用machine和LWRP资源 在大量阅读时,我发现一个术语converge\u by。它是什么意思?收敛的意思是“收敛”。您将看到converge\u by围绕实际执行操作以安排系统的代码块 它用于识别和跳过实际修改系统状态的操作。如果您编写自己的纯ruby代码,在LWRP中修改系统,那么您希望使用converge\u by包装该代码。它做了两件事,那就是保护包装好的代码,这样它就不会在为什么运行模式下运行。它会在资源运行时自动将其标记为正在更新 为了使您正在编写
chef
的新手,刚刚开始使用machine
和LWRP
资源
在大量阅读时,我发现一个术语converge\u by
。它是什么意思?收敛的意思是“收敛”。您将看到converge\u by
围绕实际执行操作以安排系统的代码块
它用于识别和跳过实际修改系统状态的操作。如果您编写自己的纯ruby代码,在LWRP中修改系统,那么您希望使用converge\u by包装该代码。它做了两件事,那就是保护包装好的代码,这样它就不会在为什么运行模式下运行。它会在资源运行时自动将其标记为正在更新 为了使您正在编写的资源是幂等的(并且不会在每次运行时都报告为已更新),您通常应该在检查幂等性时将converge_包装起来 比如:
use_inline_resources
action :doit do
unless File.exist("/tmp/doit")
converge_by("creating /tmp/doit") do
FileUtils.touch("/tmp/doit")
end
end
end
当然,核心厨师资源已经为您完成了大部分这方面的工作,因此,对于该示例,最好编写如下:
use_inline_resources
action :doit do
file "/tmp/doit"
end
这表明您的第一个选择应该是使用其他资源编写操作,第二个选择通常是编写自己的converge\u by代码。我正在搜索文档,但找不到术语“converge\u by”。“机器”资源是chef provisioning的一部分,该功能有自己的网页:。我认为你需要更具体地处理你的问题。