13

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

我的 Hiera 层次结构配置为:

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

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

>hiera some-common ::env=node1
data

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

4

2 回答 2

7

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

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
于 2015-04-17T14:15:07.870 回答
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
于 2019-07-17T11:33:15.097 回答