Я установил Марионетку, использующую foreman-installer
и это установило успешно.
Затем я хотел установить Hiera
поскольку у меня есть некоторые модули, которые используют функции hiera, таким образом, я установил hiera и создал соответствующее hiera.yaml
файл в /etc/puppet
который похож на это:
:backends:
- yaml
:yaml:
:datadir: '/etc/puppet/hieradata/%{::environment}'
:hierarchy:
- fqdns/%{::fqdn}
- roles/%{::role}
- domains/%{::domain}
- common
Кроме того, я создал символьную ссылку из /etc/puppet/hiera.yaml
кому: /etc/hiera.yaml
.
Я также создал необходимые папки для поддержки hiera иерархии.
Вот список пакетов драгоценного камня, которые установлены на сервере:
ansi (1.4.3)
clamp (0.6.2)
facter (2.4.4)
ffi (1.0.9)
foreman_api (0.1.11)
gssapi (1.1.2)
hashie (2.0.5)
hiera (3.0.1, 1.3.4)
hiera-puppet (1.0.0)
highline (1.6.21)
json (1.4.6)
json_pure (1.8.2)
kafo (0.5.4)
kafo_parsers (0.0.2)
little-plugger (1.1.3)
logging (1.8.1)
mime-types (1.16)
multi_json (1.8.2)
netrc (0.7.7)
oauth (0.4.7)
passenger (4.0.18)
powerbar (1.0.11)
rack (1.1.0)
rack-test (0.5.4)
rake (0.8.7)
rdoc (3.12)
rest-client (1.6.7)
rkerberos (0.1.2)
rubyipmi (0.7.0)
sinatra (1.0)
hiera как команда работает в сервере:
[root@dev5-puppet01 puppet]# hiera role
nil
Но когда я работаю: puppet agent -t
, Я получаю следующую ошибку:
[root@dev5-puppet01 puppet]# puppet agent -t
info: Retrieving plugin
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb
info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb
info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
err: Could not retrieve catalog from remote server: Error 400 on SERVER: Unknown function hiera_include at /etc/puppet/manifests/site.pp:2 on node dev5-puppet01.domain.com
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Я имею, работал locate hiera_include
и найденный им здесь:
/usr/lib/ruby/gems/1.8/gems/hiera-puppet-1.0.0/lib/puppet/parser/functions/hiera_include.rb
который, кажется, правильный путь для функции.
Марионетка site.pp
похож на это:
[root@dev5-puppet01 puppet]# cat /etc/puppet/manifests/site.pp
# Empty site.pp required (puppet #15106, foreman #1708)
hiera_include('classes'
)
Некоторая соответствующая информация: Марионеточная версия: 2.7.26 Pluginsync включают на Марионеточном сервере, который действует также как свой собственный клиент.
Таким образом, что я делаю неправильно? Каким образом функция не найдена Марионеткой?
Возможно, вам понадобится вручную скопировать файл функции rb в /usr/lib/ruby/gems/1. 8/gems/puppet-${версия}/lib/puppet/parser/functions/
, однако я настоятельно рекомендую больше не запускать Puppet 2.7.x (Open Source) в производственном окружении.
.
Она заканчивается и больше не будет получать обновлений, см.:
http://docs.puppetlabs.com/release_notes/
В настоящее время поддерживаются (Open Source) версии 3.8 и 4.2.
.