厨师食谱在第一次收敛时不执行
Chef recipe not executing on first convergence
我有基本的厨师食谱,其中一个食谱在第一个 运行 中没有收敛。
厨师食谱:https://github.com/linaksa/linaksa_infra
当我 运行 kitchen test
配方 linaksa_infra::hosts
根本没有收敛。此外,当我 运行 kitchen setup
它不会收敛,但如果我 运行 kitchen converge
之后它会收敛。我不确定我做错了什么?
这是 kitchen test
kitchen setup
和 kitchen converge
的输出:https://gist.github.com/linaksa/76607bbfd15e471dfa67
我正在使用 Chef DK 0.10.0。任何帮助将不胜感激。
别担心,两种情况下都会执行配方。
问题是食谱仅在屏幕上打印 如果其中至少包含一个资源。
查看食谱代码:
nodes = search(:node, 'ipaddress:*')
nodes.each do |n|
hostsfile_entry n['ipaddress'] do
# [...]
end
end
原因是第一次搜索return没有节点(我们用的是kitchen)。所以在第一个 运行 这个食谱中不会创建任何资源。因此,配方不会在执行时显示在屏幕上。
第二次,如果您正在使用 chef_zero
provisioner,搜索将 return localhost 机器,因为它是在上一个 chef 运行.[=13] 末尾保存的=]
您可以尝试 运行ning kitchen with -l debug
以确认发生了什么。
我有基本的厨师食谱,其中一个食谱在第一个 运行 中没有收敛。
厨师食谱:https://github.com/linaksa/linaksa_infra
当我 运行 kitchen test
配方 linaksa_infra::hosts
根本没有收敛。此外,当我 运行 kitchen setup
它不会收敛,但如果我 运行 kitchen converge
之后它会收敛。我不确定我做错了什么?
这是 kitchen test
kitchen setup
和 kitchen converge
的输出:https://gist.github.com/linaksa/76607bbfd15e471dfa67
我正在使用 Chef DK 0.10.0。任何帮助将不胜感激。
别担心,两种情况下都会执行配方。
问题是食谱仅在屏幕上打印 如果其中至少包含一个资源。
查看食谱代码:
nodes = search(:node, 'ipaddress:*')
nodes.each do |n|
hostsfile_entry n['ipaddress'] do
# [...]
end
end
原因是第一次搜索return没有节点(我们用的是kitchen)。所以在第一个 运行 这个食谱中不会创建任何资源。因此,配方不会在执行时显示在屏幕上。
第二次,如果您正在使用 chef_zero
provisioner,搜索将 return localhost 机器,因为它是在上一个 chef 运行.[=13] 末尾保存的=]
您可以尝试 运行ning kitchen with -l debug
以确认发生了什么。