베스천 서버를 하나 만들었는데 서버의 목록이 나열되고 해당 서버를 선택해서 접속하는 형식을 만들어보고 싶었음. 그래서 알아보던중 dialog라는 툴을 사용하면 linux상에서도 dialog창을 사용할 수 있다고 해서 리서치를 해보았음
connect-server.sh
HEIGHT=20
WIDTH=80
CHOICE_HEIGHT=20 # 리스트 출력 개수
BACKTITLE="Backtitle here"
TITLE="Buff dev server instances"
MENU="Choose one of the following options:"
OPTIONS=(1 "kpop printshop front server (i-091389f09324e6256)"
2 "kpop printshop admin api server (i-06ce721057f78dcc0)"
3 "kpop batch server (i-0b2b1878f6778261e)"
4 "kpop api server (i-0042ee0f91efd37f2)"
5 "bfactory utils server (i-09a8f4c0cdd711fd3)"
6 "bfactory cimpress api server (i-0b126003dab563e13)"
7 "bfactory admin batch server (i-0f481ea8012469a8e)"
8 "bfactory admin api and front server (i-08e627cd197c3100e)"
)
CHOICE=$(dialog --clear \
--backtitle "$BACKTITLE" \
--title "$TITLE" \
--menu "$MENU" \
$HEIGHT $WIDTH $CHOICE_HEIGHT \
"${OPTIONS[@]}" \
2>&1 >/dev/tty)
SERVER_KEY=/home/ubuntu/.aws/aws-server-key.pem
clear
case $CHOICE in
1)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
2)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
3)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
4)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
5)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
6)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
7)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
8)
ssh -i "$SERVER_KEY" ubuntu@172.xxx.xxx.xxx
;;
esac
chmod +x connect-server.sh
./connect-server.sh
실행을 해보니 목록이 잘 나오고 목록을 선택했을때 제대로 스크립트가 동작되어 편하게 베스천 서버를 가동할 수 있었다.