summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.md1
-rw-r--r--share/hydra/ssh-config35
2 files changed, 36 insertions, 0 deletions
diff --git a/TODO.md b/TODO.md
index 72674c8..bff16e3 100644
--- a/TODO.md
+++ b/TODO.md
@@ -7,6 +7,7 @@ Hydra
- module-update: get latest commit from production branch, setup branch if need.
- bootless: properly support `$subdevice` in parted or always use first partition (like `/dev/sdb1`).
- newkeys: split SSH/OpenPGP check: just generate OpenPGP key if absent.
+ - ssh-config: hydra integration.
Hydractl
--------
diff --git a/share/hydra/ssh-config b/share/hydra/ssh-config
new file mode 100644
index 0000000..92945f8
--- /dev/null
+++ b/share/hydra/ssh-config
@@ -0,0 +1,35 @@
+#!/bin/bash
+# Thanks to http://paste.debian.net/93242/
+
+if [ $# -ne 1 ]; then
+ echo "Usage: ${0} nodes_dir"
+ exit 1
+fi
+
+NODESDIR=${1}
+
+if [ ! -d ${NODESDIR} ]; then
+ echo "Not a directory: ${NODESDIR}"
+ exit 1
+fi
+
+REGEXP1="\(nodo::vserver::instance\|context\)"
+REGEXP2="s/[^\"]*\"//"
+REGEXP3="s/\".*//"
+REGEXP4="s/[^']*'//"
+REGEXP5="s/'.*//"
+
+ishost=1
+
+while read l; do
+ if [ ! -z "${ishost}" ]; then
+ host=${l}
+ unset ishost
+ else
+ echo Host ${host}.sarava.org
+ echo Port 22`printf "%02d" "${l}"`
+ echo
+ ishost=1
+ fi
+done < <(grep -R "${REGEXP1}" ${NODESDIR} | sed -e "${REGEXP2}" -e "${REGEXP3}" \
+ -e "${REGEXP4}" -e "${REGEXP5}")