aboutsummaryrefslogtreecommitdiff
path: root/manifests/subsystem/ssh/local_key.pp
diff options
context:
space:
mode:
Diffstat (limited to 'manifests/subsystem/ssh/local_key.pp')
-rw-r--r--manifests/subsystem/ssh/local_key.pp43
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"],
+ }
+}