使用 puppet 管理 ssh_known_hosts

Ban*_*jer 5 linux puppet ssh-keys puppetdb

我是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,
}
Run Code Online (Sandbox Code Playgroud)

但是,ssh_known_hosts 似乎并未在 puppetmaster 或代理上进行修改。我的清单在运行时通过了语法验证,puppet parser validate client.pp并且puppet agent --test在代理上运行未报告任何问题。

我是否必须设置存储配置才能使用 sshkey 资源?我喜欢存储配置的功能,但它似乎对我需要的东西来说有点过分,而且似乎增加了很多开销。我的另一个选择是将$sshrsakey事实吐到 a file,但它需要检查公钥是否存在,因此它不会被多次添加。

Jef*_*and 8

是的,您需要启用存储配置。

在每个主机上,您需要将密钥收集到存储的配置数据库中(注意@@):

@@sshkey { $hostname:
    ensure => present,
    type => "rsa",
    key  => $sshrsakey,
}
Run Code Online (Sandbox Code Playgroud)

然后,您还需要将它们写入每个主机上的文件。

Sshkey <<| |>>
Run Code Online (Sandbox Code Playgroud)