diff options
-rw-r--r-- | TODO.md | 4 | ||||
-rwxr-xr-x | share/hydra/newkeys | 18 |
2 files changed, 16 insertions, 6 deletions
@@ -6,9 +6,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. - - add 'all-ssh' and 'all-pgp' options to generate either all SSH or all OpenPGP keys. + - newkeys: split SSH/OpenPGP check: just generate OpenPGP key if absent. Hydractl -------- diff --git a/share/hydra/newkeys b/share/hydra/newkeys index 66ce846..35dce4f 100755 --- a/share/hydra/newkeys +++ b/share/hydra/newkeys @@ -17,7 +17,7 @@ # <http://www.gnu.org/licenses/>. function hydra_newkeys { - # Generates ssh and gpg keys for new nodes + # Generates ssh and gpg keys for new or existing nodes # GPG keys should be manually imported in the nodes for host in `hydra $HYDRA nodes`; do node="`echo $host | cut -d . -f 1`" @@ -25,6 +25,13 @@ function hydra_newkeys { pubkey="$privkey.pub" if [ "$1" == "all" ]; then hydra_genpairs + elif [ "$1" == "all-ssh" ]; then + hydra_genpairs all-ssh + elif [ "$1" == "all-pgp" ]; then + hydra_genpairs all-pgp + elif [ ! -z "$1" ]; then + hydra_genpairs + exit $? elif [ ! -e "$privkey" ] || [ ! -e "$pubkey" ]; then hydra_genpairs fi @@ -34,8 +41,13 @@ function hydra_newkeys { function hydra_genpairs { BASEDIR="/tmp" - keyringer $HYDRA genpair ssh $node/ssh/id_rsa $host $privkey - keyringer $HYDRA genpair gpg $node/gpg/key $host + if [ "$1" != "all-pgp" ]; then + keyringer $HYDRA genpair ssh $node/ssh/id_rsa $host $privkey + fi + + if [ "$1" != "all-ssh" ]; then + keyringer $HYDRA genpair gpg $node/gpg/key $host + fi hydra_set_tmpfile genpair echo "Importing keys for $host" > $TMPWORK |