Eu usaria um modelo. Defina seu recurso de arquivo para usar o conteúdo em vez da fonte:
content => template("mymodule/temp-conf-file.erb"),
Depois, o modelo substituirá o nome do host. O modelo estaria localizado no subdiretório de modelos do seu módulo:
# This file is managed by puppet
... random config stuff ...
hostname = <%= hostname %>
Você também pode usar fqdn ou outra coisa.