diff options
Diffstat (limited to 'manifests/subsystem/ssh/local_key.pp')
-rw-r--r-- | manifests/subsystem/ssh/local_key.pp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/manifests/subsystem/ssh/local_key.pp b/manifests/subsystem/ssh/local_key.pp new file mode 100644 index 0000000..f311ea3 --- /dev/null +++ b/manifests/subsystem/ssh/local_key.pp @@ -0,0 +1,43 @@ +# Manage local ssh keys +define nodo::subsystem::ssh::local_key( + $owner = $name, + $group = $name, + $home = "/home/${owner}", + $source = "puppet:///ssh/${name}_id_rsa", + $dest = 'id_rsa', + $ensure = 'present', +) { + nodo::subsystem::ssh::folder { "ssh_local_key-${name}": + home => $home, + owner => $owner, + group => $group, + ensure => $ensure ? { + 'present' => 'directory', + default => 'absent', + }, + } + + file { "${home}/.ssh/${dest}": + ensure => $ensure, + owner => $owner, + group => $group, + mode => 0400, + source => $ensure ? { + 'present' => $source, + default => undef, + }, + require => File["${home}/.ssh"], + } + + file { "${home}/.ssh/${dest}.pub": + ensure => $ensure, + owner => $owner, + group => $group, + mode => 0400, + source => $ensure ? { + 'present' => "${source}.pub", + default => undef, + }, + require => File["${home}/.ssh"], + } +} |