aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2016-10-14 17:58:24 -0300
committerSilvio Rhatto <rhatto@riseup.net>2016-10-14 17:58:24 -0300
commitd5ffa217be82d8541b0a7f821c1affd5660db2b8 (patch)
tree75736cb84628faa53cf4e5d3adc72378cf567236
parentab62e77f3f927ef3f35ecc5c8d1bbd4650fd94b4 (diff)
downloadhydra-d5ffa217be82d8541b0a7f821c1affd5660db2b8.tar.gz
hydra-d5ffa217be82d8541b0a7f821c1affd5660db2b8.tar.bz2
Import-keys: do not use ssh if host is localhost
-rw-r--r--doc/todo.rst1
-rwxr-xr-xshare/hydra/import-keys116
2 files changed, 78 insertions, 39 deletions
diff --git a/doc/todo.rst b/doc/todo.rst
index 0f14d45..efe4379 100644
--- a/doc/todo.rst
+++ b/doc/todo.rst
@@ -1,6 +1,5 @@
TODO
====
-* import-keys: do not use ssh if host is localhost.
* import-certs: concat.pem; cert.pem and cert.crt symlinks; restart services.
* compile: automatic definitions for per-node backup::users.
diff --git a/share/hydra/import-keys b/share/hydra/import-keys
index cf858c2..9f10e94 100755
--- a/share/hydra/import-keys
+++ b/share/hydra/import-keys
@@ -30,52 +30,92 @@ function hydra_import_keys_openpgp {
continue
fi
- $HYDRA_CONNECT $hostname <<EOF
- ##### BEGIN REMOTE SCRIPT #####
- echo ""
- echo "-----------------------------"
- echo "Importing gpg key to $node..."
- echo "-----------------------------"
- echo ""
- echo "$key" | sudo gpg --homedir /root/.gnupg --import
-
- echo ""
- echo "Trusting key at $node..."
- echo ""
- printf "trust\n5\ny\nsave\n" | sudo gpg --homedir /root/.gnupg --no-tty --status-fd=2 --command-fd=0 --edit-key $key_id
-
- echo ""
- echo "Verifying..."
- echo ""
- sudo gpg --homedir /root/.gnupg --list-keys
- ##### END REMOTE SCRIPT #######
+ if [ "`facter fqdn`" != "$hostname" ]; then
+ $HYDRA_CONNECT $hostname <<EOF
+ ##### BEGIN REMOTE SCRIPT #####
+ echo ""
+ echo "-----------------------------"
+ echo "Importing gpg key to $node..."
+ echo "-----------------------------"
+ echo ""
+ echo "$key" | sudo gpg --homedir /root/.gnupg --import
+
+ echo ""
+ echo "Trusting key at $node..."
+ echo ""
+ printf "trust\n5\ny\nsave\n" | sudo gpg --homedir /root/.gnupg --no-tty --status-fd=2 --command-fd=0 --edit-key $key_id
+
+ echo ""
+ echo "Verifying..."
+ echo ""
+ sudo gpg --homedir /root/.gnupg --list-keys
+ ##### END REMOTE SCRIPT #######
EOF
+ else
+ echo ""
+ echo "-----------------------------"
+ echo "Importing gpg key to $node..."
+ echo "-----------------------------"
+ echo ""
+ echo "$key" | sudo gpg --homedir /root/.gnupg --import
+
+ echo ""
+ echo "Trusting key at $node..."
+ echo ""
+ printf "trust\n5\ny\nsave\n" | sudo gpg --homedir /root/.gnupg --no-tty --status-fd=2 --command-fd=0 --edit-key $key_id
+
+ echo ""
+ echo "Verifying..."
+ echo ""
+ sudo gpg --homedir /root/.gnupg --list-keys
+ fi
}
# Import OpenSSH keypair
function hydra_import_keys_openssh {
- echo "-----------------------------------------------------"
- echo "Importing keypair at $hostname:/root/.ssh..."
- echo "-----------------------------------------------------"
-
- echo "Creating folder structure at $hostname:/root/.ssh..."
- $HYDRA_CONNECT $hostname <<EOF
- sudo mkdir -p /root/.ssh
- sudo chown root.root /root/.ssh
- sudo chmod 700 /root/.ssh
- sudo touch /root/.ssh/id_rsa
- sudo touch /root/.ssh/id_rsa.pub
- sudo chmod 600 /root/.ssh/id_rsa
- sudo chmod 600 /root/.ssh/id_rsa.pub
+ if [ "`facter fqdn`" != "$hostname" ]; then
+ echo "-----------------------------------------------------"
+ echo "Importing keypair at $hostname:/root/.ssh..."
+ echo "-----------------------------------------------------"
+
+ echo "Creating folder structure at $hostname:/root/.ssh..."
+ $HYDRA_CONNECT $hostname <<EOF
+ sudo mkdir -p /root/.ssh
+ sudo chown root.root /root/.ssh
+ sudo chmod 700 /root/.ssh
+ sudo touch /root/.ssh/id_rsa
+ sudo touch /root/.ssh/id_rsa.pub
+ sudo chmod 600 /root/.ssh/id_rsa
+ sudo chmod 600 /root/.ssh/id_rsa.pub
EOF
- echo "Importing public key from keyringer to $hostname:/root/.ssh..."
- keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa.pub | \
- $HYDRA_CONNECT $hostname "cat - | sudo tee /root/.ssh/id_rsa.pub > /dev/null"
+ echo "Importing public key from keyringer to $hostname:/root/.ssh..."
+ keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa.pub | \
+ $HYDRA_CONNECT $hostname "cat - | sudo tee /root/.ssh/id_rsa.pub > /dev/null"
+
+ echo "Importing private key from keyringer to $hostname:/root/.ssh..."
+ keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa | \
+ $HYDRA_CONNECT $hostname "cat - | sudo tee /root/.ssh/id_rsa > /dev/null"
+ else
+ echo "-----------------------------------------------------"
+ echo "Importing keypair at $hostname:/root/.ssh..."
+ echo "-----------------------------------------------------"
+
+ echo "Creating folder structure at $hostname:/root/.ssh..."
+ sudo mkdir -p /root/.ssh
+ sudo chown root.root /root/.ssh
+ sudo chmod 700 /root/.ssh
+ sudo touch /root/.ssh/id_rsa
+ sudo touch /root/.ssh/id_rsa.pub
+ sudo chmod 600 /root/.ssh/id_rsa
+ sudo chmod 600 /root/.ssh/id_rsa.pub
- echo "Importing private key from keyringer to $hostname:/root/.ssh..."
- keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa | \
- $HYDRA_CONNECT $hostname "cat - | sudo tee /root/.ssh/id_rsa > /dev/null"
+ echo "Importing public key from keyringer to $hostname:/root/.ssh..."
+ keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa.pub | sudo tee /root/.ssh/id_rsa.pub > /dev/null
+
+ echo "Importing private key from keyringer to $hostname:/root/.ssh..."
+ keyringer $HYDRA decrypt nodes/$hostname/ssh/id_rsa | sudo tee /root/.ssh/id_rsa > /dev/null
+ fi
}
# Command line arguments