【问题标题】:Dump :node object in chef转储:厨师中的节点对象
【发布时间】:2025-04-07 16:55:02
【问题描述】:

我是一名开发人员,负责对 devops 团队拥有的食谱进行一些更改。我们无权访问刀或厨师服务器。

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

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() 调用,因为搜索没有按预期工作。

谢谢。

【问题讨论】:

    标签: ruby chef-infra


    【解决方案1】:

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

    你真正需要的只是node:

    pp "node:", node
    

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

    【讨论】:

    • 感激不尽。已经为此苦苦挣扎了好几个小时。
    最近更新 更多