家のネットブックの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