【问题标题】:chef knife command to show all attributes厨师刀命令显示所有属性
【发布时间】:2019-03-01 00:05:49
【问题描述】:

我正在尝试使用一个刀命令显示所有节点的所有属性。 我特别想看看设置在普通级别的属性

请帮忙

【问题讨论】:

    标签: chef-infra knife


    【解决方案1】:

    knife node show $name --format json --long。或者更短的形式knife node show $name -Fj -l。 (如果你只想要普通的属性,你也可以使用-m/--medium

    【讨论】:

      【解决方案2】:

      这有点棘手,取决于您要实现的目标。

      你可以触发这个查询:

      knife search node 'name:*' -F j
      

      请注意,这将以 JSON 格式获取所有节点及其数据,但如果您可以考虑根据某些属性过滤节点的参数会更好。可能是您设置的某些属性或类似role:WEB

      【讨论】:

      • 是的,所有节点数据都将是 JSON 格式,您必须逐个节点解析数组。你不能得到“只是属性”。这至少会为您获取所有节点的所有属性。
      • @Jeetendra,你能以其他方式解决它吗?如果是,请分享作为答案。
      【解决方案3】:

      你可以使用

      knife exec -E 'nodes.find("*:*") {|n| puts n.normal_attrs}'
      

      它将在所有节点中搜索普通属性

      您可以将普通属性替换为

      1. default_attrs
      2. override_attrs

      最后你可以用 attributes 替换它,它会以 raw 格式输出所有内容。

      【讨论】:

      • 这对我来说效果很好,在我的情况下,我只需要从某个根普通属性键入的一组特定普通属性。我用过:knife exec -E 'nodes.find("recipe:my_recipe") {|n|放“#{n.name} #{n.normal_attrs.my_normal_attr_key_root}”}'
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2014-03-28
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      相关资源
      最近更新 更多