Hiera + Puppet 课程

Hiera + Puppet 课程

我正在尝试弄清楚 Puppet (3.0) 以及它与内置 Hiera 的关系。因此,这就是我尝试的,一个非常简单的示例(当我设法使简单的层次结构正常工作时,我将创建一个更复杂的层次结构):

# /etc/puppet/hiera.yaml
:backends:
  - yaml
:hierarchy:
  - common
:yaml:
  :datadir: /etc/puppet/hieradata

# /etc/puppet/hieradata/common.yaml
test::param: value

# /etc/puppet/modules/test/manifests/init.pp
class test ($param) { notice($param) }

# /etc/puppet/manifests/site.pp
include test

如果我直接应用它,那就没问题:

$ puppet apply /etc/puppet/manifests/site.pp
Scope(Class[Test]): value

如果我通过木偶大师,那就不好了:

$ puppet agent --test
Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass param to Class[Test] at /etc/puppet/manifests/site.pp:1 on node <nodename>

我错过了什么?

编辑

我刚离开办公室,但突然想到:我应该重启 puppet master,这样它才能看到新的 hiera.conf。我会在周一尝试;与此同时,如果有人能找出一些不是它的问题,我会很感激 :)

答案1

我是个白痴,问题中的编辑是正确的:重新启动 Puppet Master 后,一切都正常了。

答案2

为了希拉(/etc/puppet/environments/local/hieradata/hostgroups/base/你的主机名/all.yaml)


mySuperVariable:lalala

为了在里面(/etc/puppet/environments/local/manifests/你的主机名/manifest)

类 mimir::init { $myvariable = hiera('mySuperVariable', 'fallbackValue') }

为了模板(/etc/puppet/environments/local/manifests/你的主机名/模板)

无论如何...<%= myvariable%>等等

相关内容