Puppet Hiera、default site.pp和错误找不到类

Puppet Hiera、default site.pp和错误找不到类,puppet,server,sysadmin,hiera,Puppet,Server,Sysadmin,Hiera,我有一个运行puppet和hiera的服务器,目前还有一个客户端。 我想用hiera配置文件管理我的所有节点,所以我只把它放在/etc/puppet/manifests/site.pp中: hiera_include(classes, '') 在我的文件/etc/puppet/hieradata/common中: --- classes: - "common_test" - fw_test - zabbix::agent zabbix::agent:zabbix_vers

我有一个运行puppet和hiera的服务器,目前还有一个客户端。 我想用hiera配置文件管理我的所有节点,所以我只把它放在/etc/puppet/manifests/site.pp中:

hiera_include(classes, '')
在我的文件/etc/puppet/hieradata/common中:

---
classes:
  - "common_test"
  - fw_test
  - zabbix::agent

    zabbix::agent:zabbix_version : '2.2'
    zabbix::agent:server: 192.168.1.1
    zabbix::agent:serveractive: '192.168.1.1'
    zabbix::agent:hostname: 'Test_puppet'
    zabbix::agent:manage_firewall: true
通过这种配置,我的客户机上没有设置参数(192.168.1.1、true、Test_puppet等)

第二个问题,当我在我的类列表中添加
zabbix::userparameters
时,我有一个错误
找不到…
但是这个类存在(我使用这个包)

我举了这个例子,但它也不适用于其他类的参数错误。
致以最诚挚的问候。

您的参数键不正确。例如,这个

zabbix::代理:zabbix_版本:“2.2”

。。。应该是

zabbix::agent::zabbix_版本:“2.2”

。主要问题是
zabbix::agent
zabbix\u版本
之间的冒号太少。我认为键和尾随冒号之间的空白并不重要,但更传统的做法是没有空白


至于
zabbix::userparameters
,它是一种(定义的)资源类型,而不是一个类。你不能
include
it(或
hiera\u include()
it)。

哦,它真的很简单,非常感谢!你对用户参数有什么想法吗?我可以像zabbix::agent::userparameters:source:“…”那样做吗?您可以创建自己的类来包装一个
zabbix::userparameters
的声明。您可以为该类提供所需的任何参数,并通过hiera声明该类及其参数。但是,请注意,
zabbix::userparameters
作为资源类型而不是类的要点应该是允许节点声明多个。因此,尽管我所描述的策略应该从木偶的角度来看是有效的,但我不能说它是否真的适合你的节点。我还有最后一个问题。我已经写了一个木偶模块(不是发布)。他的init.p像
类testasterisk一样开始($host_patton=undef,
。但是当我在我的hiera文件中用
testasterisk::host_patton:'192.168.1.1'
设置参数时,它似乎不起作用。我在模板中用
使用host_patton变量,当我只使用puppet时,它就完全起作用了。你有什么想法吗?非常感谢你宝贵的帮助=)您对模块布局、hiera数据和模板的描述似乎是正确的。如果数据实际上在hiera将为相关节点查阅的文件中,并且图片中没有更高优先级的数据文件,则我必须得出结论,您的描述是错误的。数据文件可能在
tecfaxbox中包含打字错误::host_patton
键。或者,如果还有一个
tecfaxbox::texfaxbox
类,那么在某些情况下,您可能会对实际声明的是哪个类感到困惑。关于
zabbix::agent::userparameters:source:
,它应该是
zabbix::userparameters::source: