Puppet Hiera命令行:如何查看给定节点层次结构中的所有数据?

Puppet Hiera命令行:如何查看给定节点层次结构中的所有数据?,puppet,hiera,Puppet,Hiera,只是测试hiera,我希望能够查看给定节点层次结构中的所有可用数据(变量=值对) 我的Hiera层次结构配置为: --- :backends: - yaml - json :yaml: :datadir: C:\Puppet\hieradata :hierarchy: - "Env/%{::env}" - common 我可以运行以下命令来返回node1的'some common'变量值: >hiera some-common ::env=node1 data 我

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

我的Hiera层次结构配置为:

---
:backends:
  - yaml
  - json
:yaml:
  :datadir: C:\Puppet\hieradata
:hierarchy: 
  - "Env/%{::env}"
  - common
我可以运行以下命令来返回node1的'some common'变量值:

>hiera some-common ::env=node1
data
我希望能够看到层次结构中节点1可用的所有变量=值对,这可能吗?
谢谢

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

facter -y > node.yml
然后使用它们查找特定的键:

hiera -y node.yml my_class:arg -d
通过这种方式,您将能够基于操作系统、域等访问Hiera密钥(取决于您在
Hiera.yaml
中定义的层次结构)

另一种选择是ssh到puppet主节点。并使用
puppet lookup
(应该从puppet 4开始提供)<代码>查找默认使用Hiera后端(同样需要
Hiera.yaml
config文件)

或更详细的版本:

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

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

node-data:
  hosts:
    - localhost:3367
    - company.com
  dns: 8.8.8.8
  policy:
    retries: 3
    timeout: 5
并使用merge对该顶级键执行傀儡查找,例如:

puppet lookup --merge hash/deep node_data

这让我很开心。谢谢你!
puppet lookup --merge hash/deep node_data