summaryrefslogtreecommitdiffstats
path: root/deploy/adapters/cobbler/snippets/ssh.xml
diff options
context:
space:
mode:
Diffstat (limited to 'deploy/adapters/cobbler/snippets/ssh.xml')
-rw-r--r--deploy/adapters/cobbler/snippets/ssh.xml46
1 files changed, 46 insertions, 0 deletions
diff --git a/deploy/adapters/cobbler/snippets/ssh.xml b/deploy/adapters/cobbler/snippets/ssh.xml
new file mode 100644
index 00000000..58ad98b9
--- /dev/null
+++ b/deploy/adapters/cobbler/snippets/ssh.xml
@@ -0,0 +1,46 @@
+#set ssh_keys = $getVar("push_ssh_keys", "/root/.ssh/id_rsa.pub")
+#if $ssh_keys != ""
+ #set user_name = $getVar("username", "root")
+ #if $user_name == "root"
+ #set home = "/root"
+ #else
+ #set home = "/home/%s" % $user_name
+ #end if
+<file>
+ <file_path>$home/.ssh/authorized_keys</file_path>
+ <file_owner>${user_name}.${user_name}</file_owner>
+ <file_permissions>600</file_permissions>
+ <file_script>
+ <interpreter>shell</interpreter>
+ <source>
+<![CDATA[
+\#!/bin/bash
+mkdir -p $home/.ssh
+chmod 700 -R $home/.ssh
+ #set $firstline = True
+ #for $ssh_key in $ssh_keys.split(',')
+ #if not $ssh_key
+ #continue
+ #end if
+ #try
+ #set f = $open($ssh_key)
+ #if $firstline
+cat << EOL > $home/.ssh/authorized_keys
+ #echo $f.read()
+EOL
+ #else
+cat << EOL >> $home/.ssh/authorized_keys
+ #echo $f.read()
+EOL
+ #end if
+ #set $firstline = False
+ #silent $f.close()
+ #except
+# failed to read from $ssh_key
+ #end try
+ #end for
+]]>
+ </source>
+ </file_script>
+</file>
+#end if