My problem is that this feels like mixing code and data (since all of the host keys live inside a module directory) and I have to make another commit to the Puppet VCS every time I add a new set of hosts. Is there a better way to manage these things?
Você pode ajustar seu fileserver.conf
e basicamente compartilhar outro diretório que você usa apenas para a configuração ssh se você quiser separar seus arquivos fantoches das configurações / chaves SSH.
fileserver.conf
[sshconfig]
path /srv/puppet/sshconfig/
allow *
Com uma configuração como acima, seu manifesto poderia ser exibido abaixo e os arquivos seriam recuperados de /srv/puppet/sshconfig/$fqdn/
.
file { "/etc/ssh/":
source => "puppet:///sshconfig/$fqdn",
...
}