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