Usando exemplo de Hiera NTP no fantoche não funciona

1

No momento, estou tentando reconstruir o exemplo descrito aqui

O problema é que, quando tento obter a variável ntp :: servers, recebo o seguinte erro, que eu tenho problemas em entender.

hiera ntp::servers ::fqdn=debian

/usr/lib/ruby/vendor_ruby/hiera/backend.rb:18:in '[]': can't convert Symbol into Integer (TypeError)
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:18:in 'datadir'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:98:in 'datasourcefiles'
from /usr/lib/ruby/vendor_ruby/hiera/backend/yaml_backend.rb:16:in 'lookup'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:206:in 'block in lookup'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:203:in 'each'
from /usr/lib/ruby/vendor_ruby/hiera/backend.rb:203:in 'lookup'
from /usr/lib/ruby/vendor_ruby/hiera.rb:60:in 'lookup'
from /usr/bin/hiera:225:in '<main>'

Eu considero os marcadores de tópicos de toros

  • Seu arquivo hiera.yaml corresponde ao exemplo que fornecemos
  • Você colocou um link simbólico em hiera.yaml, onde a ferramenta de linha de comando espera encontrá-lo (/etc/hiera.yaml)
  • Você salvou seu arquivo de origem de dados kermit.example.com com uma extensão .yaml
  • O YAML do seu arquivo de fonte de dados está bem formado
  • Você reiniciou seu mestre de marionetes se você modificou hiera.yaml

Meu /etc/puppet/hiera.yaml. (um pouco diferente, mas também deve funcionar)

:backends:
  - yaml
  - puppet
:yaml:
  - :datadir: /etc/puppet/hieradata
:puppet:
  - :datadir: data
:hierarchy:
  - "node/%{::clientcert}"
  - "%{::environment}"
  - common

O link simbólico está correto

ls -l /etc/hiera.yaml 
lrwxrwxrwx 1 root root 22 Sep 15 15:33 /etc/hiera.yaml -> /etc/puppet/hiera.yaml

Meu arquivo de exemplo: /etc/puppet/hieradata/node/debian.yaml

ntp::restrict:
  -
ntp::autoupdate: false
ntp::enable: true
ntp::servers:
  - 0.us.pool.ntp.org iburst
  - 1.us.pool.ntp.org iburst
  - 2.us.pool.ntp.org iburst
  - 3.us.pool.ntp.org iburst

Eu não sei exatamente quais ferramentas usar para verificar se o YAML foi bem-formado. Eu copiei do site, então eu acho que está tudo bem.

O Puppetmaster também foi reiniciado para ter certeza.

Então, qual poderia ser o problema com o erro que a ferramenta hiera me dá?

    
por syss 15.09.2014 / 17:02

1 resposta

1

Você escolheu o caminho mais seguro de usar %{::clientcert} em vez de %{::fqdn} , o que é recomendável. Mas certifique-se de fornecer um valor para isso em vez de ::fqdn=debian ao realizar a pesquisa.

Além disso, em vez de :datadir , o backend puppet tem uma opção :datasource (consulte o docs ).

Eu recomendo remover o backend de puppet por enquanto. Adicione-o se achar que realmente precisa dele. A maioria dos usuários não vai.

    
por 16.09.2014 / 14:08

Tags