我是Puppet(开源版本)的新手,有一个相对简单的问题。
当我启动一个新主机时,我希望 puppetmaster 将新主机的公共 rsa 密钥添加到 /etc/ssh/ssh_known_hosts,这样更新的 ssh_known_hosts 文件就可以被 puppet 代理拉下来。
我试过sshkey
资源:
# /etc/puppet/modules/ssh/manifests/client.pp
sshkey { $hostname:
ensure => present,
type => "rsa",
key => $sshrsakey,
}
但是,ssh_known_hosts 似乎没有在 puppetmaster 或代理上进行修改。我的清单在我运行时通过了语法验证,puppet parser validate client.pp
并且puppet agent --test
在代理上运行时未报告任何问题。
我是否必须设置存储配置才能使用 sshkey 资源?我喜欢 Stored Configs 的功能,但它似乎对我需要的东西来说太过分了,而且似乎增加了很多开销。我的另一个选择是将事实吐$sshrsakey
给 a file
,但它需要检查公钥是否存在,这样它就不会被多次添加。
是的,您需要启用存储配置。
在每台主机上,您需要将密钥收集到存储的配置数据库中(注意
@@
):然后,您还需要将它们写入每个主机上的文件。