家のネットブックのUbuntuマシン(作ったgemがLinuxで動くか確かめたりカメラ/マイク/シリアルポートを使うための実験用)を廃止してMacMiniのVirtualBox内で運用することにした。
GUI付きでインストールするが、GUIはSkype Botのためにしか使わない。基本的にMacMini側からsshでログインしてCUIで操作する。
■Ubuntuインストール
それぞれダウンロードしておく。
VirtualBoxをインストールして、起動。
左上の「新規」から仮想ディスクイメージをHDD16GB/メモリ512MBで作った。
「起動」ボタンを押す。
何も入ってないカラのイメージなので、さっきダウンロードしたUbuntuのイメージファイルを選ぶ。
画面の指示に従ってUbuntuをインストールする。全部デフォルト設定で良い。
途中で「HDDを消すか」と言われて怖いが、さっき作った仮想ディスクイメージの事なので気にせず消す。
インストールが終わったら再起動。
左上の「Dashホーム」からTerminalで検索してターミナル起動する。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ssh emacs-nox screen build-essential virtualbox-guest-additions
適当に色々インストールしておく。
あと環境設定からUbuntuがスリープしない様に設定する。
■IPを固定する
家の中ではMacMiniは192.168.1.3で運用しているので、VirtualBoxのUbuntuを192.168.1.4にする。
一度Ubuntuの電源を切ってから、VirtualBoxの設定画面から「ネットワークアダプタ2」を追加、「ブリッジアダプタ」に設定する。
Ubuntuを起動してから、 /etc/networking/interfaces を編集
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
ネットワークを再起動して設定を有効にする
sudo /etc/init.d/networking restart
sudo ifconfig
192.168.1.4になっていた。
Mac側から接続する。
ssh 192.168.1.4
なお、これは固定IPなのでラップトップとかで持ち歩いて外のWiFiに接続する時とかには設定しない方が良い。
iface eth1 inet dhcp
にして下のアドレス指定してる所を全部書かないか、そもそもネットワークアダプタ1だけで十分だな
■Macから仮想マシンを起動する
Macのterminalから起動できる
VBoxManage startvm "Ubuntu" --type gui
VBoxManage startvm "Ubuntu" --type headless
参考:
launchdでVirtualBoxの仮想マシンを自動起動 – komagata
Mac用のLaunchDaemons用plistも設定しておけば、Macの電源入れると同時にVirtualBoxを起動できる。
■Skype botを自動起動
とりあえずSkypeをインストールする。Skypeにはログインパスワードを覚えさせておく。
Ubuntuの右上の電源ボタンから「自動起動するアプリケーション」を選んで、
/usr/bin/skype を指定。Ubuntuを再起動してみるとSkypeが起動する。
一度終了して、上のVBoxManageコマンドからheadlessで起動してもSkypeが起動できた。
同様に
skype-chat-gateway-linuxも起動できる。
■家の外からVirtualBoxのUbuntuにログイン
mydns.jpで非固定IPの家の回線にドメイン名を振っているので、外からMacMiniにはsshでログインできるようになっている。
外出中は
Macbook Air ---[インターネット]---> MacMini(shokai.org) ---[家のLAN]---> VirtualBox(192.168.1.4)
という風に多段sshする事にした。ポートフォワードで22番以外でVirtualBoxのsshを外に出してもいいけど。
Macbook Airの ~/.ssh/config に追記する
Host vb-ubuntu
HostName 192.168.1.4
ProxyCommand nohup ssh -l `whoami` shokai.org nc %h %p
全て同じユーザ名でログインしているのでwhoamiで取り出す。
ssh vb-ubuntu
で外からでもVirtualBoxに接続できる。
参考:
sshの多段接続がものすごい便利な件 | Carpe Diem