问题标签 [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.
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".
puppet - 我不明白 hiera.yaml 和 hiera
我似乎无法弄清楚如何访问我放入 yaml 文件的 hiera 数据。
这是我的 hiera.yaml:
更改上述文件后,我重新启动了 3.7 PE Puppet master,如下所示:
我还有这两个 yaml 文件,其中包含类参数 controller_vip_name 的键/值对。所以我有这个...
...请注意,在文件vxx-osc4.yaml
中的值全部controller_vip_name
为vxx-osc4.example.com
小写,而在 defaults.yaml 文件中,的值controller_vip_name
在VXX-osc4.example.com
VXX 为大写的地方。我正在尝试像这样对我的设置进行质量检查:
上面的命令有效,hiera 从defaults.yaml
文件中检索数据但是这个命令不起作用:
我认为hiera
完全忽略了我的vxx-osc4.yaml
文件。
我在这里做错了什么?
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 数组?
yaml - 强制用户在下次使用 Puppet 登录时更改密码
有人可以向我解释一下,您将如何强制用户在首次使用 Puppet 和 hiera/yaml 登录时更改密码?如果我错了,请纠正我,但我不相信用户资源适合这样的事情......
nginx - 与 hiera 和 puppet 中的所有虚拟主机共享 nginx 状态位置
我正在使用 Jfryman puppet nginx 模块,我正在尝试使用可用的虚拟主机启用状态位置,所以我的 hiera 是这样的:
无论如何要说这些虚拟主机中包含的这个位置而不复制hiera条目?
puppet - Hiera 3 + Puppet 4.2 无法管理 yaml 数据源中的空值
我在将 Hiera 3 与 Puppet 4.2 一起使用时遇到了一些问题。使用此命令应用我的木偶清单时:
我收到以下错误:
这是目录结构:
config.yaml 的内容:
init.pp 的内容:
hiera数据源内容:
看起来 Hiera 无法处理来自 yaml 数据源的空值和/或用默认值替换它们?
vagrant - 木偶清单脚本中的 Hiera 变量
我让 Hiera 与 puppet/vagrant 结合运行。
假设我有一个木偶执行官在做以下事情
我想用"project_db"
我common.yaml
的 hiera中的变量替换字符串
我该怎么做?语法对我来说不清楚,这样的事情会带来错误:
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 上
我究竟做错了什么?
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 中定义它?
yaml - 木偶中hiera的嵌套YAML
我正在为我们公司设计一个木偶架构。我真的很喜欢用 hiera 和 YAML 文件对我的节点进行分类的想法。但是,我真的希望能够应用不基于事实的 YAML 文件或将 YAML 文件导入另一个 YAML 文件。
例如 NodeA.yaml
这将允许我尽可能多地重用我的代码。这样,当我更改我的 Web 服务器配置时,我只需在一个文件中进行,而不是在每个节点的 YAML 文件中进行。
我也对其他解决方案持开放态度。