はじめに
macでVirtualBoxを使用して検証とかする場合、いちいちVirtualBox起動→仮想マシン起動→SSHで接続して作業する。
本記事は、スクリプトによりバックグラウンドから仮想マシンを起動し、簡単にSSH接続するための仮想マシン起動ツールです。
環境
mac + ターミナル + VirtualBox
スクリプト
(※)変数の"N"は、IPアドレスを意味する
#!/bin/bash
clear
#変数
DNS=192.168.N.N
WEB=192.168.N.N
MAIL=192.168.N.N
DB=192.168.N.N
#関数
submenu1(){
clear
echo " 1 DNSサーバ"
echo " 2 Webサーバ"
echo " 3 Mailサーバ"
echo " 4 DBサーバ"
echo -e "\n"
echo "サーバを選択してください"
}
submenu2(){
read servernum
case ${servernum} in
1) VBoxManage startvm "DNSサーバ" -type headless ;;
2) VBoxManage startvm "Webサーバ" -type headless ;;
3) VBoxManage startvm "Mailサーバ" -type headless ;;
4) VBoxManage startvm "DBサーバ" -type headless ;;
esac
}
submenu3(){
read servernum
case ${servernum} in
1) ssh root@${DNS} ;;
2) ssh root@${WEB} ;;
3) ssh root@${MAIL} ;;
4) ssh root@${DB} ;;
esac
}
submenu4(){
read servernum
case ${servernum} in
1) ping ${DNS} ;;
2) ping ${WEB} ;;
3) ping ${MAIL} ;;
4) ping ${DB} ;;
esac
}
#処理
echo " 1 hostsを表示する"
echo " 2 サーバを起動する"
echo " 3 サーバに接続する"
echo " 4 疎通確認"
echo -e "\n"
echo "実行したい処理の番号を入力してください"
read inputkey
case ${inputkey} in
1 ) cat /etc/hosts ;;
2 ) submenu1;submenu2 ;;
3 ) submenu1;submenu3 ;;
4 ) submenu1;submenu4 ;;
esac
exit 0
例
- macからターミナルを起動し、スクリプトを実行する。
./server_conect.sh
- 仮想マシンを起動する場合、2を入力してreturnキーを押す。
- ここでは例として2のWebサーバを起動するため、2を入力してreturnキーを押す。 (※)正常に起動できる場合、「VM "仮想マシン名" has been successfully started.」のようなメッセージが出力される
- 再度、スクリプトを実行する。
./server_conect.sh
- SSh接続するため、3を入力してreturnキーを押す。
- 先ほど起動したWebサーバに接続するため、2を入力してreturnキーを押す。パスワード入力が求められるので、ログインユーザのパスワードを入力する。 (※)当スクリプトのSSH接続は、パスワード認証で接続している