Я только что установил puppet 3 (3.0.0-0.1rc3puppetlabs1) на 32-битную виртуальную машину Ubuntu 12.04. Я использовал пакеты для установки.
Затем я скопировал существующие модули и манифесты из своего производственного мастера марионеток 2.7.x, а также мои 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
Оказывается, на самом деле это вызвано ошибка в некоторых версиях hiera-puppet.
Придется скопировать hiera_puppet.rb в каталог hiera-puppet / lib, либо дождаться выпуска нового RC, либо перейти на один из старых, незатронутых RC.