Eu acho que você está atacando o problema no lado errado: você deveria fazer uma checagem em seus arquivos de fantoches antes de ativá-los no seu mestre de marionetes.
A maneira mais fácil de verificar a sintaxe é usar:
puppetd --parseonly --confdir=/path/to/dir --vardir=/tmp/puppet
que deve retornar "Sintaxe OK" se tudo estiver bem. Você também pode secar a marionete usando:
puppetd --test --noop --confdir=/path/to/dir --vardir=/tmp/puppet
Ele mostrará o que vai mudar, para que você possa verificar se está fazendo o que esperava antes de permitir que seus clientes de marionetes usem as novas alterações que você introduziu.