Hiera 与 puppet 3 rc3 发生故障

Hiera 与 puppet 3 rc3 发生故障

我刚刚在 32 位 Ubuntu 12.04“服务器”虚拟机上安装了 puppet 3 (3.0.0-0.1rc3puppetlabs1)。我使用了软件包进行安装。

然后,我从生产 2.7.x puppet master 以及 hiera.yaml 和 hieradata/* 复制了现有的模块和清单。

当我运行时,puppet agent --test我得到以下信息:

Error: Puppet::Parser::AST::Resource failed with error NoMethodError: undefined method `empty_answer' for Hiera::Backend:Module at /etc/puppet/environments/test/manifests/nodes/puppet_nodes.pp:47 on node ll-puppet-master-vm

有问题的行是:

  class { 'basenode':
    is_puppet_master => true;
  }

基节点是:

class basenode (
  $is_puppet_master = false,
  $apt_host = 'repo.domain.com'
  ) {
...
}

对于模块,hiera 没有明确使用。

还,

root@ll-puppet-master-vm:/usr/lib/ruby/1.8/puppet/parser/functions# ls hiera*
hiera_array.rb  hiera_hash.rb  hiera_include.rb  hiera.rb

我缺少依赖项或配置文件,但目前我还不知道是什么。

我的 hiera.yaml 是:

---
:hierarchy:
#  - %{node_id}
  - common
:backends:
  - yaml
  - puppet
:yaml:
  :datadir: '/etc/puppet/hieradata'

我的puppet.conf:

[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
templatedir=$confdir/templates
report=true
server=ll-puppet-master-vm
certname=ll-puppet-master-vm
pluginsync=true
archive_files = true
listen=true

[agent]
environment=test

[master]
facts_terminus = yaml
environment=test
manifest=/etc/puppet/environments/test/manifests/site.pp
modulepath=/etc/puppet/environments/test/modules:/etc/puppet/modules
ssl_client_header=SSL_CLIENT_S_DN
ssl_client_verify_header=SSL_CLIENT_VERIFY
storeconfig=true
dbadapter=mysql
dbuser = XXXXX
dbpassword = XXXXX
dbconnections = 75
reports = store

答案1

事实证明,这实际上是由漏洞在某些版本中。

必须将 hiera_puppet.rb 复制到 hiera-puppet/lib 目录或等待新的 RC 发布,或者降级到较旧的、不受影响的 RC 之一。

相关内容