我在运行自己的厨师食谱时看到了一个奇怪的问题,即使在修改了json env文件之后,看起来在运行之间也会出现一些陈旧的变量名称。请参阅下面的详细信息。我已经粘贴了我的模板和环境文件的摘录。还显示了我所看到的所需输出和当前奇怪的输出。它可能是我的红宝石循环(原谅我的红宝石,noob在这里),但我已多次检查它,并没有看到任何问题的构造。
任何帮助表示赞赏......现在已经搞乱了近24小时,为了提高工作效率,我正在向其他人伸出援手。
这是我在这里的第一篇文章,我不允许在内容中发布超过2个链接。我不得不从示例输出中删除“http”和“https”,并将我的域名重命名为绕过。
模板:
gatewaymappings: |
{
<% @gatewaymappings.each_with_index do |mapping, index| %>
"<%= mapping.incomingFQDN %>" : "<%= mapping.upstreamProtocol %>://<%= mapping.upstreamFQDN %>
<% if (mapping.upstreamPort.length > 0) %>
:<%= mapping.upstreamPort %>"
<% end %>
<% if (index+1 != @gatewaymappings.count) %>
,
<% end %>
<% end %>
}
Chef模板变量:
:gatewaymappings => node[app_name]['gatewaymappings']
示例JSON:
"gatewaymappings": [
{
"incomingFQDN": "host1",
"upstreamProtocol": "http",
"upstreamFQDN": "upstream1",
"upstreamPort": "8000"
},
{
"incomingFQDN": "host2",
"upstreamProtocol": "https",
"upstreamFQDN": "upstream2",
"upstreamPort": "8001"
}
]
所需的输出:(在yml文件中)
gatewaymappings: |
{
"host1" : "upstream1:8000",
"host2" : "upstream2:8001"
}
当前输出:
(第一个元素来自之前的示例env运行,它甚至不存在于我当前的示例json中,我尝试清除缓存等,但它仍然会一直显示)
gatewaymappings: |
{
"localhost" : "upstream",
"host1" : "upstream1:8000",
"host2" : "upstream2:8001",
"host1" : "upstream1:8000",
"host2" : "upstream2:8001"
}
答案 0 :(得分:0)
我想我能解决这个问题。这是由于我的节点配置被破坏。我应该提到我正在使用厨师零。事实证明,节点配置被保存回nodes
目录内的json文件,即使对于chef-zero也是如此,无论我删除了~/.chef
和我的安装目录中的本地模式缓存多少次,陈旧的价值不断回归。感谢gitter聊天室,有人给了我一个温和的提醒,检查节点的配置。这照顾了这个问题,我现在看到了我的预期输出。谢谢!