问题标签 [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 投票
3 回答
1293 浏览

puppet - 在使用 Hiera 的 Puppet 中,我将要安装在节点上的文件放在哪里?

我知道 puppet 模块总是有一个 files 目录,我知道它应该在哪里,并且我已经从我自己的手写模块中有效地使用了source =>语法,但现在我需要学习如何使用 Hiera 部署文件。

我从 saz-sudo 模块开始,我已经阅读了文档,但我看不到任何关于将 sudoers 文件放在哪里的信息;我要分发的那个。我不确定是否需要在 /etc/puppetlabs/puppet 中设置站点范围的文件目录,然后在其中为每个模块或其他内容创建子目录。如果我说source => "puppet:///files/etc/sudoers" ,Hiera 是否知道查看 /etc/puppetlabs/puppet/files/sudo ?我需要在 /etc/hiera.yaml 中添加路径名吗?添加一行-文件

感谢您提供任何线索。

0 投票
1 回答
531 浏览

puppet - 如何使用 Hiera 的 common.yaml 文件管理 limits.conf 数据?

老板说我需要使用 saz-limits 来管理 /etc/security/limits.conf 所以我已经安装了它,尽管我相信 erwbgy/limits 是更好的选择。

我的问题是,他希望我在 Hiera 中实现所有内容,并且模块或其他任何地方都没有 yaml 示例片段。我的 common.yaml 文件中有以下内容,当然它失败了。

错误:

错误:无法从远程服务器检索目录:服务器上的错误 400:():在第 2 行第 1 列解析块映射时未找到预期的键警告:未在失败的目录上使用缓存错误:无法检索目录;跳过跑步

0 投票
2 回答
4468 浏览

vagrant - 如何使用 Vagrant、Puppet 和 Hiera 配置时区?

我在基于 Vagrant/Puppet+Hiera 的测试环境中使用PuPHPet 。

在 config.yml(Hiera 配置文件)中,我想为我的时区添加部分

并通过命令 vagrant provision正确设置。

这可能吗?

0 投票
1 回答
805 浏览

puppet - puppet:尝试使用定义 $title 作为 hiera 变量名的一部分

我们正在使用 puppet 模块来创建我们的主机条目,它变得相当大。目前我们有这个

我们每台服务器都有一次。我们还有一个开发和生产环境,服务器数量略有不同,这一切都变得有点混乱。

为了简化它,我正在尝试这个

然后在课堂上,

但这给了我各种错误,例如

':' 处的语法错误;预期的 '}'

这可能吗?这只是标点符号的问题还是需要完全不同的方法?

0 投票
3 回答
5454 浏览

puppet - 如何使用 Hiera 使用文件的“内容”属性构建配置文件?

  • 我正在寻找一个通用的解决方案,所以 sysctl.conf 只是一个例子。

我有几行配置需要确保存在于我所有服务器的 sysctl.conf 中:

sysctl.conf 文件要求文件中没有前导空格。我想将以上所有行填充到一个 yaml 文件中,以符合 Craig Dunn 的角色/配置文件方法。

如果我尝试使用这种格式:

生成的文件在除第一行之外的每一行的第 0 列中写入一个空白字符。我需要一个换行符,但我不想要前导空格。

我正在尝试确定一种简单、易于复制的方式来在我的所有节点上重现配置文件,而不使用模板 erb 文件。我想要一个 yaml 文件中的所有配置行。

这是我的模块的 init.pp:

如果在 common.yaml 我使用:

sysctl_conf:“内容”:“net.ipv4.ip_forward = 0\n net.ipv4.conf.default.rp_filter = 1\n net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536\n kernel.msgmax = 65536\n” 我最终得到“ Munging failed for value in class content: can't convert Hash into String”

0 投票
0 回答
339 浏览

puppet - 将 pe_accounts 模块与 hiera 一起使用

我需要能够使用 pe_accounts 和 hiera 管理用户帐户。这个页面: http ://docs.puppetlabs.com/pe/latest/accounts_class.html#usage-example 说我可以创建一个像site_accounts这样的模块并添加这个文本

到 site_accounts/manifests/init.pp 然后安装这个语法

进入一个名为 /var/lib/hiera/pe_accounts_users_hash.yaml 的文件

这足以添加用户 sysop。但它当然不是。我确实将以下语法添加到 hiera.conf

我不断收到的错误是:

0 投票
1 回答
1879 浏览

yaml - 在 Hiera yaml 文件中输入的正确语法

目标是为传递给已定义资源类型的参数提供默认值。我已经使用使用 Hiera 的自动默认过程成功地为类参数提供了默认值,但是这种机制不适用于已定义的类型。

这是我在定义的类型中调用 Hiera 的方式:

我的想法是创建对键入类名称的某些参数具有正常自动默认值的类(因此在类文件中完成,未显示),但使其他参数对于该类型的所有用户都具有相同的默认值,而与类无关。上述类型是为了允许更新 GIT 存储库。它需要是一个类型而不是一个类,因为我需要从多个 GIT 存储库中获取文件,并且类是单例的,而类型可能有多个实例。每个声明“git_down”实例的类都应该期望在同一个地方找到 git 可执行文件(git_down::path 和 git_down::shell)。每个类的不同之处在于源代码库的 URL、存储要克隆或获取的本地代码库的目录以及要签出的版本标记。

这是我的 Hiera.yaml 的样子:

(注意:我在这里没有使用 ::fqdn 和 ::osfamily,因为独立的 Hiera 命令行工具无法识别它们。当我一切正常时,我可能会添加双冒号。)

我没有特定于机器的 YAML 文件(基于 fqdn,完全限定域名),因此它应该查看我的 osfamily 特定文件,即 git_windows.yaml:

我以这种方式测试了我的 Hiera:

1)使用命令行facter创建一个包含我所有事实的YAML事实文件(运行Hiera时需要):

2) 使用命令行 Hiera 查看它是否识别我的变量:

hiera -d -c ..\hiera.yaml -y ..\facts.yaml git_down::shell

Hiera 输出以下内容:

我应该看到“C:/Program Files (x86)/git/bin/sh.exe”,而不是“nil”。怎么了?

0 投票
0 回答
904 浏览

puppet - 错误传递参数层次

我有 nex puppet 模块来管理limits.conf:

限制.pp

当我尝试使用我的 puppetmaster 进行证明时,我创建了一个 puppet.yaml 来传递参数,并使用以下代码:

当我执行时,收到下一条消息错误:

当然这是一个问题,我不知道将值传递给 puppet.yaml,但我不知道错误。有人能帮我吗?谢谢

0 投票
1 回答
4998 浏览

ruby - Puppet hiera 和 create_resource 问题

我在将哈希从 hiera 传递到资源创建时遇到了一些问题。

忽略隐藏的项目名称:) 但你明白了要点。我的资源如下所示:

我的木偶运行后出现这些错误

我知道它希望我将参数直接实现到类中。但是,我真正想要的是资源中对我整体可用的哈希。我在这里做错了什么?

0 投票
1 回答
3869 浏览

diff - Puppet onlyif 和 unless 从 Hiera 和 CLI 脚本输出中的布尔数据进行条件测试

我在 RHEL 6 上运行 Puppet v3.0 并通过exec资源进行包管理。我想通过onlyif和将一些控制门添加到我的清单中unless

首先,我想使用 Hiera [自动查找功能]中定义的布尔值。其次,我想使用运行的 bash 脚本中的布尔值diff <() <()

我使用以下层次数据:

我的清单如下:

unless我将如何在上面的上下文中测试来自 Hiera 的布尔值 (0|1)和CLI diff.script onlyif