From 3cbff4da780688df04fda17cf8bbecc7603e39dd Mon Sep 17 00:00:00 2001 From: Jacob Kiers Date: Fri, 10 Apr 2015 13:51:06 +0000 Subject: [PATCH] Improve setup-server The order of parameters is now changed to make it easier when deploying to a lot of servers. Also, it introduces the concept of a friendly name, which is useful when DNS is not available for a specific host. Instead of being forced to have the alias be the same as the IP address, it can now be named. Signed-off-by: Jacob Kiers --- bin/setup-server | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/bin/setup-server b/bin/setup-server index bdf71f1..9872269 100755 --- a/bin/setup-server +++ b/bin/setup-server @@ -8,40 +8,59 @@ function red() { echo -e "$RED$*$NORMAL"; } function green() { echo -e "$GREEN$*$NORMAL"; } function yellow() { echo -e "$YELLOW$*$NORMAL"; } -if [ ! $# == 2 ]; then - echo "Usage: $0 " +if [ $# -lt 1 ]; then + echo "Usage: $0 [friendly-name] [user]" + echo "Example: $0 127.0.0.1 server-name $USER" + echo + echo "Afterwards you can login with: ssh server-name" exit 1; fi -USER=$1 -HOST=$2 +HOST=$1 +NAME=$2 +USERNAME=$3 + IP=`dig +short $HOST` +if [ -z "$USERNAME" ]; then + USERNAME=$USER +fi + if [ -z "$IP" ]; then IP=$HOST fi -grep "Host $HOST" ~/.ssh/config 2>&1 > /dev/null +if [ -z "$NAME" ]; then + NAME=$HOST +fi + +yellow "Setting up server $USERNAME@$HOST with name '$NAME'" + +grep "Host $NAME" ~/.ssh/config 2>&1 > /dev/null if [ 0 -eq $? ]; then - echo $HOST is already in .ssh/config + echo $NAME is already in .ssh/config else echo Adding server to .ssh/config... cat >> ~/.ssh/config <