问题标签 [hiera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
514 浏览

hiera - How come data is not coming from my hiera yaml file?

I am using Puppet Enterprise 3.7.2 and on one of my nodes I create the file:

Then I rebooted that node and logged back in and verified that the FACTER_pod_prefix gets set and facter pod_prefix outputs the expected value.

On my PE 3.7 Puppet master I created the file /var/lib/hiera/vii-osc4.yaml. I created the /var/lib/hiera/vii-osc4.yaml from the /var/lib/hiera/defaults.yaml file that I had been using like so:

This file has a bunch of class parameter values. For example there is this line in the file:

Then I changed my hiera.yaml file to look like this:

Then I restarted my pe-httpd service like so (RHEL7):

Then I make a small change to the /var/lib/hiera/vii-osc4.yaml for example I change the line ...

... to ...

But when I run puppet agent -t --noop on my node, vii-osc4-mgmt-001, I do not see the change that I expected to see. If I make the change in the /var/lib/hiera/defaults.yaml and then run puppet agent -t --noop on my node I do see the expected changes. What am I doing wrong here?

UPDATE: using /etc/facter/facts.d method of setting custom facts.

I looked into using /etc/facter/facts.d for what I am trying to do. What I am trying to do is set a custom fact "pod_prefix". I want to use this fact in my hiera.yaml like so ...

... so that nodes that have pod_prefix set to vii-osc4 will obtain their class parameters from the file /var/lib/hiera/vii-osc4/yaml and host that pod_prefix set to ix-xyz will get their class params from /var/lib/hiera/ix-xyz.yaml. I do not see how creating the file /etc/facter/facts.d/pod_prefix.txt on my puppet master that contains something like this ...

... could possibly be a solution to my problem. I guess I must be misunderstanding something here. Can someone help?

UPDATE 2.

The /etc/facter/facts.d/pod_prefix.txt file goes on my nodes. I think my biggest problem is that just execute systemctl restart pe-httpd was not sufficient and things didn't start working until I did a full reboot of my puppet master. I need to go look at the docs and figure out what is the correct way to restart the "puppet master".

0 投票
1 回答
307 浏览

puppet - 我不明白 hiera.yaml 和 hiera

我似乎无法弄清楚如何访问我放入 yaml 文件的 hiera 数据。

这是我的 hiera.yaml:

更改上述文件后,我重新启动了 3.7 PE Puppet master,如下所示:

我还有这两个 yaml 文件,其中包含类参数 controller_vip_name 的键/值对。所以我有这个...

...请注意,在文件vxx-osc4.yaml中的值全部controller_vip_namevxx-osc4.example.com 小写,而在 defaults.yaml 文件中,的值controller_vip_nameVXX-osc4.example.com VXX 为大写的地方。我正在尝试像这样对我的设置进行质量检查:

上面的命令有效,hiera 从defaults.yaml文件中检索数据但是这个命令不起作用:

我认为hiera完全忽略了我的vxx-osc4.yaml文件。

我在这里做错了什么?

0 投票
0 回答
932 浏览

arrays - 如何在 Puppet 中重用 Hiera 数组?

目标

目的是重用分层数组以避免代码重复。

尝试

以下数组已在 hiera.yaml 文件中定义:

为了重用它,将 hiera_array 设置为由另一个 hiera 数组使用:

预期结果

hiera_array如果或被reuse::hiera_array调用,文件之间应该没有差异:

文件名.erb

/路径/到/文件名

目前的结果

然而,调用数组的 filename.erb 模板返回:

/路径/到/文件名

从模板中删除join表明查找的 hiera 数组看起来不同:

["[\"host1\", \"host2\", \"host3\"]"]对比["host1", "host2", "host3"]

讨论

看起来 hiera_array 可以在["host1, host2, host3"]返回时重复使用,并且看起来像一个数组。但是 hiera 或 erb 函数<%= scope.function_hiera(['reuse::hiera_array']).join("\n") %>将其解释为字符串。

问题

如何在 Puppet 中重用 Hiera 数组?

0 投票
1 回答
236 浏览

yaml - 强制用户在下次使用 Puppet 登录时更改密码

有人可以向我解释一下,您将如何强制用户在首次使用 Puppet 和 hiera/yaml 登录时更改密码?如果我错了,请纠正我,但我不相信用户资源适合这样的事情......

0 投票
1 回答
504 浏览

nginx - 与 hiera 和 puppet 中的所有虚拟主机共享 nginx 状态位置

我正在使用 Jfryman puppet nginx 模块,我正在尝试使用可用的虚拟主机启用状态位置,所以我的 hiera 是这样的:

无论如何要说这些虚拟主机中包含的这个位置而不复制hiera条目?

0 投票
0 回答
698 浏览

puppet - Hiera 3 + Puppet 4.2 无法管理 yaml 数据源中的空值

我在将 Hiera 3 与 Puppet 4.2 一起使用时遇到了一些问题。使用此命令应用我的木偶清单时:

我收到以下错误:

这是目录结构:

config.yaml 的内容:

init.pp 的内容:

hiera数据源内容:

看起来 Hiera 无法处理来自 yaml 数据源的空值和/或用默认值替换它们?

0 投票
1 回答
638 浏览

vagrant - 木偶清单脚本中的 Hiera 变量

我让 Hiera 与 puppet/vagrant 结合运行。

假设我有一个木偶执行官在做以下事情

我想用"project_db"common.yaml的 hiera中的变量替换字符串

我该怎么做?语法对我来说不清楚,这样的事情会带来错误:

0 投票
3 回答
4212 浏览

puppet - Puppet 无法从 hiera 中找到数据项

我正在尝试为我的 Puppet 设置构建 Hiera 配置。我的主机是 FreeBSD 和 Debian 系统。因此我有一个基于::osfamily. 但由于我广泛使用 Jails,我想进一步细分我的 FreeBSD 主机,使用::virtual.

来自hiera.yaml

还有我的数据目录树:

在我的理解中,木偶应该应用osfamily/FreeBSD.yaml的所有内容,然后从物理/FreeBSD.yaml 应用到物理 FreeBSD 主机。

现在我想在每台主机上安装 CA-Certificates 包并为该任务设置一个类:

该类包含在common.yaml 中

并且ca_package -Variable 在osfamily/ FreeBSD.yaml 中定义:

当我对该变量进行 hiera 测试时,一切正常:

但 Puppet(甚至在监狱中)抱怨说数据项ca_package不可用。

错误:无法从远程服务器检索目录:服务器上的错误 400:无法在任何 Hiera 数据文件中找到数据项 ca_package,并且 /usr/local/etc/puppet/modules/certificates/manifests/init.pp 中未提供默认值: 2 在节点 puppet.fqdn 上

我究竟做错了什么?

0 投票
1 回答
144 浏览

yaml - Puppet 代理应根据位置选择 DNS 和 NTP 服务器

我们的基础架构中有 3 个不同的数据中心。我正在使用 puppetlabs/ntp 模块和 saz/resolv_conf 并使用 hiera_include('classes') 将这两个模块安装到添加到 puppet 的所有代理中。

现在我的 common.yaml 文件如下所示:

所以我在 Datacenter 3 中的 puppet 代理获取了所有 3 个数据中心的 NTP 服务器和 DNS 服务器。

但我希望它只根据其位置选择 NTP 服务器和 DNS 服务器。

就像我的木偶代理在数据中心 1 中一样,那么使用数据中心 1 中的 NTP 和 DNS 服务器。我如何在我的 common.yaml 中定义它?

0 投票
1 回答
2655 浏览

yaml - 木偶中hiera的嵌套YAML

我正在为我们公司设计一个木偶架构。我真的很喜欢用 hiera 和 YAML 文件对我的节点进行分类的想法。但是,我真的希望能够应用不基于事实的 YAML 文件或将 YAML 文件导入另一个 YAML 文件。

例如 NodeA.yaml

这将允许我尽可能多地重用我的代码。这样,当我更改我的 Web 服务器配置时,我只需在一个文件中进行,而不是在每个节点的 YAML 文件中进行。

我也对其他解决方案持开放态度。