外部からアクセス可能なVagrant環境を作る
長く放置してたさくらVPSを引き上げようと、手持ちの古いiMacにVagrantを立ててみました。
Vagrantfile
に記述してvagrant up
で立ち上げるだけでよしなにしてくれて便利な時代になったものです。
Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu-12.04-x64"
config.vm.provider :virtualbox do |vb|
vb.name = "imac"
vb.customize ["modifyvm", :id, "--memory", 1024]
end
# network
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network", :bridge => 'en1: Wi-Fi (AirPort)'
# mount
config.vm.synced_folder '/Volumes/images', '/opt/images', mount_options: [ "dmode=777,fmode=666"]
end
メモリサイズ
vb.customize ["modifyvm", :id, "--memory", 1024]
1024MB = 1GBにしています。
公開ネットワーク
config.vm.network "public_network", :bridge => 'en1: Wi-Fi (AirPort)'
使用する親機のネットワーク名を指定するのですが、=> 'en1: Wi-Fi (AirPort)'
を抜いた形の設定だと起動時にネットワーク指定の選択が出る(そこで一時止まる)ので、その名前を書いておくといいです。
有線なしのMacならen0: Wi-Fi (AirPort)
になるみたいです。
USBディスクの接続
config.vm.synced_folder '/Volumes/images', '/opt/images', mount_options: ["dmode=777, fmode=666"]
自由に書き込みできるようにしておきます。
コマンド
BOXの追加
$ vagrant box add ubuntu-12.04-x64 http://files.vagrantup.com/precise64.box
立ち上げ
$ vagrant up
DHCPのIPアドレスを確認
$ vagrant ssh
$ ifconfig
...
eth2 Link encap:Ethernet HWaddr 08:00:27:**:**:**
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
外部から接続
$ ssh -l vagrant 192.168.1.20
外部からだとパスワード(vagrant)が聞かれます。
Ubuntuのマウントバグ回避
$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions
前に記事を書いた。
$ exit
$ vagrant reload
終わったら再起動。
ちなみに、Vagrantfileに
config.vm.provision :shell, :path => "bootstrap.sh"
こう書いたらやってくれるかなぁと思ったけど、実行前にマウントで落ちちゃうのでダメみたい。
手動はめんどい。