转储:厨师中的节点对象

Dump :node object in chef

我是一名开发人员,负责对 devops 团队拥有的说明书进行一些更改。我们无法访问 knife 或厨师服务器。

我尝试对现有厨师食谱添加一些调试

members = search(
    :node,
    search_str,
    filter_result: {
      'name' => ['name'],
    }

#
# print statements NOT working as expected
#
p ":node=" + :node.to_s     # <--- prints ":node=node"
pp :node.to_s               # <--- prints "node"
pp :node                    # <--- prints :node

是否可以转储 :node 对象的整个 json 结构?任何解决方法。我想查看 :node 对象的结构来调试 search() 调用,因为搜索没有按预期工作。

谢谢。

:node in ruby 是一个 symbol,不是变量。符号始终以冒号 (:) 开头。对于初学者,您可以将它们视为不可变字符串。这就是为什么你得到这样的输出。你只是打印了很多字符串。

你真正需要的只是node:

pp "node:", node

但请注意,node 是一个具有很多属性的巨大对象。