diff options
-rw-r--r-- | manifests/init.pp | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/manifests/init.pp b/manifests/init.pp index 07edc2a..1fc043f 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -46,13 +46,17 @@ class sshd { define sshd::sshd_config ( $source = "", - $allowed_users = 'root' ){ $real_source = $source ? { '' => "${operatingsystem}_normal.erb", default => $source, } + $real_allowed_users = ? $sshd_allowed_users ? { + '' => 'root', + default => $sshd_allowed_users, + } + file { 'sshd_config': path => '/etc/ssh/sshd_config', owner => root, @@ -65,3 +69,40 @@ define sshd::sshd_config ( }, } } + +define sshd::deploy_auth_key( + $source => '', + $user = 'root', + $target_dir = '/root/.ssh/', + $group = '' ) { + + $real_target = $target_dir ? { + '' => "/home/$user/.ssh/", + default => $target_dir, + } + + $real_group = $group ? { + '' => 0, + default => $group, + } + + $real_source = $source ? { + '' => "sshd/authorized_keys/${name}", + default => $source, + } + + file {$real_target: + ensure => directory, + owner => $user, + group => $real_group, + mode => 700, + } + + file {"authorized_keys_${user}": + path => "$real_target/authorized_keys", + owner => $user, + group => $real_group, + mode => 600, + source => "puppet://$server/$source", + } +} |