hmm. Eu resolvi assim:
$inst = ['/i1', '/i2', '/i3']
#$subdirs = ['subdir1', 'subdir2']
file {$inst:
ensure=>directory,
recurse=>true,
purge=>true,
force=>true,
owner=>$username,
group=>$group,
source=>"puppet:///modules/mymodule/subdirtemplates/",
mode=>'644';
}
Assegurei-me de que os sub-modelos continham todos os diretórios que eu queria estar em cada instância. Funcionou para mim, mas talvez alguém ainda tenha uma resposta melhor para configurar árvores de diretórios nos casos em que você não tem uma árvore de modelos.