Получение данные с hiera в puppet manifets при установленном foreman?

Не могу получить данные с хиеры после установки foreman.
Моя конфигурация: Puppet Master 3.7.4 + Foreman 1.7 + Hiera 1.3.4
Hiera configs:
/etc/puppet/hiera.yaml

---
:backends:
  - yaml
:hierarchy:
  - "%{::environment}/node/%{::fqdn}" #node settings
  - "%{::environment}/profile/%{calling_class}" # profile settings
  - "%{::environment}/%{::environment}" # environment settings
  - "%{::environment}/%{::osfamily}" # osfamily settings
  - common # common settings
:yaml:
# datadir is empty here, so hiera uses its defaults:
# - /var/lib/hiera on *nix
# - %CommonAppData%\PuppetLabs\hiera\var on Windows
# When specifying a datadir, make sure the directory exists.
  :datadir: '/etc/puppet/hiera'

/etc/puppet/hiera/production/profile/common.yaml
profile::common::directory_hierarchy:
  - "C:\\SiteName"
  - "C:\\SiteName\\Config"
profile::common::system: "common"

Данные хиеры для конкертного модуля /etc/puppet/hiera/production/profile/common.yaml :
profile::common::directory_hierarchy:
  - "C:\\SiteName"
  - "C:\\SiteName\\Config"
profile::common::system: "common"

Код манифеста /etc/puppet/environments/production/modules/profile/manifests/common.pp
class profile::common (
      $directory_hierarchy      =undef,
      $system                   =undef
  )
{
  # $directory_hierarchy, $system, $share_directory
  notify { "Dir is- $directory_hierarchy my fqdn is $fqdn, system = $system": }
}

Puppet config /etc/puppet/puppet.config
[main]
    logdir = /var/log/puppet
    rundir = /var/run/puppet
    ssldir = $vardir/ssl
    privatekeydir = $ssldir/private_keys { group = service }
    hostprivkey = $privatekeydir/$certname.pem { mode = 640 }
    autosign       = $confdir/autosign.conf { mode = 664 }
    show_diff     = false
    hiera_config = $confdir/hiera.yaml
[agent]
    classfile = $vardir/classes.txt
    localconfig = $vardir/localconfig
    default_schedules = false
    report            = true
    pluginsync        = true
    masterport        = 8140
    environment       = production
    certname          = puppet024.novalocal
    server            = puppet024.novalocal
    listen            = false
    splay             = false
    splaylimit        = 1800
    runinterval       = 1800
    noop              = false
    configtimeout     = 120
    usecacheonfailure = true
[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       = puppet024.novalocal
    strict_variables = false
    environmentpath  = /etc/puppet/environments
    basemodulepath   = /etc/puppet/environments/common:/etc/puppet/modules:/usr/share/puppet/modules
    parser = future

Я пытаюсь получить данные с конкретного класса папета в хиере но они не доходят. Если делать запрос типа
hiera -c /etc/puppet/hiera.yaml profile::common::directory_hierarchy ::environment=production calling_class=common
Данные получаю. Если данные прописать к примеру в common или osfamily - то через данные приходят.
И что самое странное, если же установить мастер без foreman - то этот же код работает.
Может кто-то подскажет в чем может быть проблема.
  • Вопрос задан
  • 914 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rionnagel
ковырятель
Насколько я понимаю для foreman нужна определенная структура hier'ы и он как enc инструмент в принципе заменяет hiera. Я не уверен, но вроде надо вырубать external_nodes и node_terminus, оставив foreman только для репортов. А как гибридно это использовать я хз - надо рыться в коде.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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