gpt4 book ai didi

Puppet - 在 Hiera 配置中使用节点范围变量

转载 作者:行者123 更新时间:2023-12-03 14:39:40 24 4
gpt4 key购买 nike

我正在尝试在我的 hiera.yaml 配置中使用节点范围变量,这显然应该相对简单,但它对我不起作用 Lol

像这样的 hiera.yaml :

---
:backends:
- yaml
:yaml:
:datadir: /etc/puppet/hieradata
:hierarchy:
- nodes/%{::hostname}
- builds/%{build}
- common

我的 site.pp 像这样:
hiera_include('classes')
node 'mynode' {
$build = special
}

和其他 yaml 文件,

常见的.yaml:
---
classes:
- first_class
- second_class

构建/special.yaml:
---
classes:
- third_class

我希望 'mynode' 在 puppet 代理刷新时获得 'third_class',但它没有,并且没有给出任何错误。

运行 hiera 命令给了我正确的(我认为)输出:
$ hiera classes
["first_class","second_class"]
$ hiera classes build=special
["third_class"]

我在这里做错了什么很明显吗?
%{::hostname}作品。如果我添加nodes/mynode.yaml,则会选择该配置。

最佳答案

经过几个小时的挠头,在 puppetlabs 上报告了一个文档错误(我现在已经关闭了,哈哈),几乎完全放弃了这个想法,只是创建了一个自定义事实,我发现这是一个如此简单的修复......而且它是有道理的。 ..

基本上我需要做的就是将我的 site.pp 更改为:

hiera_include('classes')
node 'mynode' {
$build = special
}

到:
node 'mynode' {
$build = special
hiera_include('classes')
}

现在很有意义,因为如您所见,我需要调用 hiera_include设置节点范围变量后。

不过请注意(正如我刚刚发现的),如果您有 hiera_include('classes')在顶层并且您在多个 yaml 文件中设置类参数,它只会使用在 common.yaml 中设置的参数。

可能最烦人的事情是,通过我所有的反复试验,我在某个时候做了 hiera_include在节点声明中,我只是没有把它放在变量 Lol 之后

关于Puppet - 在 Hiera 配置中使用节点范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33679671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com