'Não é possível converter nil em String' após a execução do Puppet

2

Ao tentar usar módulos copiados no diretório de módulos do Puppet, meu cliente de marionete retorna 'Não foi possível recuperar o catálogo do servidor remoto: Erro 400 no SERVER: não é possível converter nil em String' erros ao se conectar ao servidor mestre do Puppet.

[root@puppetmaster modules]# rpm -qa *puppet*
puppet-2.7.18-1.el6.noarch
puppet-server-2.7.18-1.el6.noarch

[root@puppetmaster modules]# uname -sr
Linux 2.6.32-279.el6.x86_64

Codifique todas as verificações e é válido. O SELinux está ligado.

    
por Magellan 28.09.2012 / 02:28

1 resposta

7

Neste caso, os arquivos foram movidos com 'mv' em vez de serem copiados com 'cp'. O SELinux não altera os arquivos para o contexto padrão do destino com 'mv' como faria com 'cp'.

Devido a isso, o Puppet não pôde ler os arquivos do módulo e, portanto, o 'include' estava falhando no arquivo .pp da chamada. Como a leitura estava falhando, havia um 'zero' onde o código era esperado.

Verifique as propriedades do SELinux dos diretórios do módulo Puppet.

O Puppet tem suas próprias configurações do SELinux e seus arquivos devem estar definidos para ele. Se copiados de outro lugar, eles estarão incorretos.

[root@puppetmaster modules]# ls -Z
drwxr-xr-x. root root unconfined_u:object_r:puppet_etc_t:s0 acroread
drwxr-xr-x. root root unconfined_u:object_r:puppet_etc_t:s0 apt
drwxr-xr-x.  999 1000 unconfined_u:object_r:admin_home_t:s0 bindserver

Para definir isso de volta ao padrão, você pode executar restorecon -R /etc/puppet , que redefinirá recursivamente todos os módulos de fantoches para configurações funcionais do SELinux para uso no Puppet.

HT: @MichaelHampton

    
por 28.09.2012 / 02:28