Марионеточный модуль не работает на агентах, в то время как это было определено в Hiera на Puppetmaster

После того как я установил Марионетку, Foreman, Hiera и Facter, как я заставляю их всех работать друг с другом?

Диспетчер GUI работает правильно и может быть просмотрен с помощью браузера. Hiera установлен, и руководствами я читал в Интернете, кажется, что он настроен правильно, и Facter также работает правильно, но агенты не получают модули от Марионеточного сервера.

Я добавил очень простой модуль MOTD и настроил его для выполнения в common.yaml. Но модуль не установлен на машинах агента, и никакая ошибка не отображена.

Выполнение puppet agent -t на сервере и на клиентских работах:

[root@puppet production]# puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for puppet.nj.peer39.com
Info: Applying configuration version '1425802774'
Notice: Finished catalog run in 0.05 seconds
[root@puppet production]#

hiera.yaml похож на это:

[root@puppet production]# cat /etc/puppet/hiera.yaml
:backends:
  - yaml
:yaml:
  :datadir: '/etc/puppet/hieradata/%{::environment}'
:hierarchy:
  - fqdns/%{::fqdn}
  - roles/%{::role}
  - domains/%{::domain}
  - common

environment.conf похож на это:

[root@puppet production]# pwd
/etc/puppet/environments/production
[root@puppet production]# cat environment.conf
modulepath  = modules
manifest = /etc/puppet/environments/production/manifests/
[root@puppet production]#

Я также пытался загрузить модуль через a fqdn.yaml файл, но напрасно и никакая ошибка отображен.

/etc/puppet/puppet.conf похож на это:

[master]
    autosign       = $confdir/autosign.conf { mode = 664 }
    reports        = foreman
    external_nodes = /etc/puppet/node.rb
    node_terminus  = exec
    ca             = true
    ssldir         = /var/lib/puppet/ssl
    certname       = puppet.company.com
    strict_variables = false
    environmentpath = $confdir/environments

Редактирование № 1:

Мой common.yaml похож на это:

classes:
- motd

Когда я сказал fqdn.yaml Я имел в виду:

[root@puppet fqdns]# pwd
/etc/puppet/hieradata/production/fqdns
[root@puppet fqdns]# ll
total 8
-rw-r--r-- 1 root root 23 Mar 11 09:26 pnd01.company.yaml
-rw-r--r-- 1 root root 17 Mar 12 08:24 puppet.company.com.yaml
[root@puppet fqdns]#

Это - мой site.pp, который расположен в /etc/puppet/environments/production/manifests:

[root@puppet manifests]# cat site.pp
hiera_include("classes", [])
Package {  allow_virtual => false, }

node default {
}
1
задан 17 March 2015 в 15:05
1 ответ
  1. Марионетка должна быть перезапущена, если hiera.yaml был изменен
  2. Формат файлов hiera важен, т.е. два пробела вместо нуля и ---

-общего. yaml

---
classes:
  - motd

вместо

classes:
- motd
  1. Если включена функция Puppet Environments, то каталог данных должен быть сконфигурирован следующим образом:

/etc/puppet/hiera.yaml

:yaml:
  :datadir: "/etc/puppet/environments/%{::environment}/hieradata"

Каждое окружение должно содержать каталог hieradata и в него должен входить common.yaml. Если окружения не используются, hiera.yaml выглядит следующим образом:

:yaml:
  :datadir: "/etc/puppet/hieradata"

переместить common.yaml в этот каталог и перезапустить puppetmaster

  1. Определение hiera_include('classes') на сайте . pp вместо hiera_include("classes", []) достаточно
2
ответ дан 3 December 2019 в 20:58

Теги

Похожие вопросы