diff options
Diffstat (limited to 'share')
-rwxr-xr-x | share/hydra/newkeys | 33 |
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 |