厨师食谱不在第一次收敛时执行

时间:2016-01-08 03:39:16

标签: chef chef-recipe test-kitchen

我有基本的厨师食谱,其中一个食谱在第一次运行中没有收敛。

Chef Cookbook:https://github.com/linaksa/linaksa_infra

当我运行kitchen test时,食谱linaksa_infra::hosts根本没有收敛。此外,当我运行kitchen setup时,它不会收敛,但如果我之后运行kitchen converge则会收敛。我不确定我做错了什么?

以下是kitchen test kitchen setupkitchen converge的输出:https://gist.github.com/linaksa/76607bbfd15e471dfa67

我正在使用Chef DK 0.10.0。任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:4)

别担心,配方在两种情况下都会执行。

问题是,如果至少在其中包含资源,则配方仅在上打印。

查看食谱代码:

nodes = search(:node, 'ipaddress:*')
nodes.each do |n|
  hostsfile_entry n['ipaddress'] do
    # [...]
  end
end

原因是第一次搜索没有返回任何节点(我们正在使用厨房)。所以在第一次运行时,这个配方不会创建任何资源。因此,配方不会在执行时显示在屏幕上。

第二次,如果您使用chef_zero配置器,搜索将返回localhost计算机,因为它是在上一次主厨运行结束时保存的。

您可以尝试使用-l debug运行厨房来确认发生了什么。