web-dev-qa-db-ja.com

puppetでssh_known_hostsを管理する

Puppet (オープンソースバージョン)は初めてで、比較的簡単な質問があります。

新しいホストを起動するときに、puppetmasterに新しいホストのパブリックrsaキーを/ etc/ssh/ssh_known_hostsに追加してもらいたいので、更新されたssh_known_hostsファイルをパペットエージェントがプルダウンできるようになります。

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 を設定する必要がありますか? Stored Configsの機能は気に入っていますが、必要なものにはやり過ぎのようで、多くのオーバーヘッドが追加されているようです。私の他のオプションは、$sshrsakeyファクトをfileに吐き出すことですが、公開鍵が複数回追加されないように、公開鍵の存在を確認する必要があります。

5
Banjer

はい、保存された構成を有効にする必要があります。

各ホストで、保存されている構成データベースにキーを収集する必要があります(@@に注意してください)。

@@sshkey { $hostname:
    ensure => present,
    type => "rsa",
    key  => $sshrsakey,
}

次に、それらを各ホストのファイルにも書き込みます。

Sshkey <<| |>>
8
Jeff Ferland