【问题标题】:Hiera command line: How do I view all data in the hierarchy for a given node?Hiera 命令行:如何查看给定节点的层次结构中的所有数据?
【发布时间】:2015-03-05 03:52:38
【问题描述】:

只是测试 hiera,我希望能够查看给定节点的层次结构中的所有可用数据(变量=值对)。

我的 Hiera 层次结构配置为:

---
:backends:
  - yaml
  - json
:yaml:
  :datadir: C:\Puppet\hieradata
:hierarchy: 
  - "Env/%{::env}"
  - common

我可以运行以下命令来返回 node1 的“一些常见”变量的值:

>hiera some-common ::env=node1
data

我希望能够看到层次结构中 node1 可用的所有变量=值对,这可能吗? 谢谢

【问题讨论】:

    标签: puppet hiera


    【解决方案1】:

    我找到了另一种解决方法 - 您可以将顶级密钥添加到您的 yaml 数据:

    node-data:
      hosts:
        - localhost:3367
        - company.com
      dns: 8.8.8.8
      policy:
        retries: 3
        timeout: 5
    

    并对这个顶级键进行合并查找木偶,例如:

    puppet lookup --merge hash/deep node_data
    

    【讨论】:

      【解决方案2】:

      恐怕这是不可能的。您可以做的最接近的事情是转储特定节点的事实:

      facter -y > node.yml
      

      然后使用它们来查找特定的键:

      hiera -y node.yml my_class:arg -d
      

      通过这种方式,您将能够根据操作系统、域等访问 Hiera 密钥(取决于您在 hiera.yaml 中定义的层次结构)。

      另一个选择是通过 ssh 进入 puppet 主节点。并使用puppet lookup(应该从 Puppet 4 开始可用)。 lookup 默认使用 Hiera 后端(同样需要 hiera.yaml 配置文件)。

      puppet lookup resolv_conf::nameservers --node mynode.example.net
      

      或更详细的版本:

      puppet lookup resolv_conf::nameservers --merge deep --environment production --explain --node mynode.example.net
      

      【讨论】:

      • 这让我很开心。谢谢!
      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多