aboutsummaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rwxr-xr-xshare/hydra/newkeys33
1 files changed, 33 insertions, 0 deletions
diff --git a/share/hydra/newkeys b/share/hydra/newkeys
new file mode 100755
index 0000000..4970afb
--- /dev/null
+++ b/share/hydra/newkeys
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# Create keys for new nodes.
+#
+
+function hydra_newkeys {
+ # Generates ssh and gpg keys for new nodes
+ # GPG keys should be manually imported in the nodes
+ for host in `hydra $HYDRA nodes`; do
+ node="`echo $host | cut -d . -f 1`"
+ privkey="$PUPPET_KEYS/"$node"_id_dsa"
+ pubkey="$privkey.pub"
+ if [ ! -e "$privkey" ] || [ ! -e "$pubkey" ]; then
+ keyringer $HYDRA genpair ssh $node/ssh/id_dsa $host $privkey
+ keyringer $HYDRA genpair gpg $node/gpg/key $host
+
+ # Add key into puppet git repository.
+ ( cd $PUPPET_KEYS && git add $privkey $pubkey )
+ fi
+ done
+}
+
+# Load.
+source $APP_BASE/lib/hydra/functions || exit 1
+hydra_config_load
+
+# Check for keyringer.
+if ! which keyringer &> /dev/null; then
+ echo "Error: please install keyringer."
+ exit 1
+fi
+
+hydra_newkeys