class ssh_keys {
@ssh_userkeys {
"storage":
privkeyname => "id_rsa",
fromhosts => ["log2","universe"],
dotsshpath => "/home/storage/.ssh";
}
define ssh_userkeys( $dotsshpath, $privkeyname, $type = "rsa", $fromhosts ){
$pubkey_contents = file("/etc/puppet/files/usersshkeys/${name}_${privkeyname}.pub")
$privkey_contents = file("/etc/puppet/files/usersshkeys/${name}_${privkeyname}")
$authkeysfile = "$dotsshpath/authorized_keys"
ssh_authorized_key {
"$name ($authkeysfile)":
user => $name,
ensure => "present",
target => $authkeysfile,
type => $type ? { rsa => "ssh-rsa", default => "ssh-dsa" },
key => chomp($pubkey_contents),
require => File[$dotsshpath,$authkeysfile];
}
$copypriv = currhost_containedin($fromhosts)
if $copypriv == "true" {
file { "privkey_${name}_${privkeyname}":
owner => $name,
group => $name,
ensure => "file",
path => "$dotsshpath/$privkeyname",
mode => "0600",
content => $privkey_contents;
}
}
}