O módulo Puppet não roda em agentes enquanto isso foi definido em Hiera no Puppetmaster

1

Depois de instalar o Puppet, o Foreman, o Hiera e o Facter, como faço para que todos trabalhem juntos?

A GUI do Foreman está funcionando corretamente e pode ser visualizada usando um navegador. O Hiera é instalado e, por guias que eu leio na Internet, parece que ele está configurado corretamente e o Facter também funciona corretamente, mas os agentes não estão obtendo módulos do servidor Puppet.

Eu adicionei um módulo MOTD muito simples e o configurei para executar em common.yaml . Mas o módulo não está instalado nas máquinas do agente e nenhum erro é exibido.

A execução de puppet agent -t no servidor e nos clientes funciona:

[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 parece com isso:

[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 parece com isso:

[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]#

Eu também tentei carregar o módulo através de um arquivo fqdn.yaml , mas sem sucesso e nenhum erro foi exibido.

/etc/puppet/puppet.conf parece com isso:

[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

Editar # 1:

Meu common.yaml é assim:

classes:
- motd

Quando eu disse fqdn.yaml , quis dizer:

[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]#

Esse é o meu site.pp , que está localizado em /etc/puppet/environments/production/manifests :

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

node default {
}
    
por Itai Ganot 12.03.2015 / 14:31

1 resposta

2
  1. O Puppetmaster precisa ser reiniciado se o hiera.yaml tiver sido alterado
  2. O formato dos arquivos hiera é importante, ou seja, dois espaços em vez de nulo e ---

common.yaml

---
classes:
  - motd

em vez de

classes:
- motd
  1. Se os Ambientes Puppet estiverem ativados, o datadir deverá ser configurado da seguinte forma:

/etc/puppet/hiera.yaml

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

Todo ambiente deve conter um diretório hieradata e deve incluir o common.yaml. Se nenhum ambiente for usado, o hiera.yaml será o seguinte:

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

mova o common.yaml para este diretório e reinicie o puppetmaster

  1. Definir hiera_include('classes') no site.pp em vez de hiera_include("classes", []) é suficiente
por 14.03.2015 / 19:48