[Vagrant & VirtualBox] Vagrant: vagrant-hostsupdater で /etc/hosts を書き換える
vagrant-hostsupdater を利用すると、vagrant 実行時に /etc/hosts を書き換えてくれます。
インストール
% vagrant plugin install vagrant-hostsupdater
つかいかた
Vagrantfile に設定を加えます。
#
# Vagrant::Hostsupdater
#
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.hostname = "www.yahoo.com"
config.hostsupdater.aliases = ["www.yahoo.co.jp", "www.sample.com"]
いつもどりに vagrant up
% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
:
==> default: Checking for host entries
==> default: adding to (/etc/hosts) : 192.168.33.10 www.yahoo.com # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
==> default: adding to (/etc/hosts) : 192.168.33.10 www.yahoo.co.jp # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
==> default: adding to (/etc/hosts) : 192.168.33.10 www.sample.com # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
Password:
==> default: Setting hostname...
:
/etc/hosts を確認してみる。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
192.168.33.10 www.yahoo.com # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
192.168.33.10 www.yahoo.co.jp # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
192.168.33.10 www.sample.com # VAGRANT: 357923c65f4312d443b6ee87f1885dbd (default) / f5f95a0d-a022-4d77-9239-9137fd229574
/etc/hosts を使ってドメインの名前解決をしてくれるので、この例では某ポータルサイトの URI をたたくと仮想マシンのドキュメントルートが表示されるようになります。
vagrant halt
で終了すると、/etc/hosts も元に戻りました。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost