Eu fui no canal de IRC para o fantoche, e descobri que isso pode ser feito com o atributo de origem.
file { "/etc/firewall.sh":
owner => root,
group => root,
mode => 550,
source => "puppet:///files/iptables.sh"
}
a localização dos arquivos é definida em /etc/puppet/fileserver.conf - a configuração é simples.
A tag de conteúdo em vez da fonte pode ser usada para colocar uma string literal no arquivo.