Add an ssh::keygen to create userkeys
authorPeter Palfrader <peter@palfrader.org>
Sat, 7 Sep 2019 21:06:50 +0000 (23:06 +0200)
committerPeter Palfrader <peter@palfrader.org>
Sat, 7 Sep 2019 21:06:50 +0000 (23:06 +0200)
modules/ssh/manifests/keygen.pp [new file with mode: 0644]

diff --git a/modules/ssh/manifests/keygen.pp b/modules/ssh/manifests/keygen.pp
new file mode 100644 (file)
index 0000000..7f01020
--- /dev/null
@@ -0,0 +1,20 @@
+# create an ssh key for user
+define ssh::keygen(
+  String $user = $name,
+) {
+  if $facts["${user}_user_exists"] == undef {
+    notify{"We do not have facters for user ${user} existance and keys -- add it to modules/debian_org/lib/facter/roleaccounts.rb": }
+  }
+  if $facts["${user}_user_exists"] {
+    if ! $facts["${user}_key"] {
+      exec { "create-${user}-ssh-key":
+        command => @("EOF"),
+          /bin/su - ${user} -c 'mkdir -p -m 02700 .ssh && ssh-keygen -C "`whoami`@`hostname` (`date +%Y-%m-%d`)" -P "" -f .ssh/id_rsa -q'
+          | EOF
+        onlyif  => "/usr/bin/getent passwd ${user} > /dev/null && ! [ -e ~${user}/.ssh/id_rsa ]"
+      }
+    }
+  } else {
+    notify{"User ${user} does not exist on this host.  Will not create ssh key": }
+  }
+}