diff options
-rw-r--r-- | lib/hydra/misc | 4 | ||||
-rwxr-xr-x | share/hydra/newkeys | 33 |
2 files changed, 37 insertions, 0 deletions
diff --git a/lib/hydra/misc b/lib/hydra/misc index 77f717d..fd90e93 100644 --- a/lib/hydra/misc +++ b/lib/hydra/misc @@ -39,6 +39,10 @@ function hydra_check_preferences { echo "Puppet folder not found: $PUPPET." exit 1 fi + + if [ -z "$PUPPET_KEYS" ]; then + PUPPET_KEYS="$PUPPET/files/keys" + fi } # Load a parameter from config 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 |