現象
Vagrant 1.7.2でCentOS 7.1.1503をデプロイすると、vagrant up(初回)後、しばらくすると Private NetworkのIP Addressが消えてしまう(もちろん、sshでも private network側 interface には入れない)。network.serviceをrestartしたり、/etc/init.d/network restartすると一時的に復活するが、しばらくすると、また消えてしまう。vagrant reload すると、復活して以後は消えなくなる(Nat側は問題ない)。
環境
- vagrant 1.7.2
- Windows 8.1 Pro(vagrantが動作しているOS)
- VirtualBox 4.3.26 r98988
- CentOS 7.1.1503(デプロイするOS)
Box
- ATLASに上がっている alexandrem/centos-7.1
- minimal の iso から自分でpackageしたboxも同様
対処方法
Vagrantfileに、下記のインラインスクリプトを記述したところ、初回のvagrant up直後も問題は発生しなくなった。
Vagrantfile
config.vm.provision "shell",
inline: "nmcli connection reload;systemctl restart network.service"
ちなみに、network.serviceのrestartだけとか、NetworkManager.serviceのrestartでは解決しなかった。/etc/sysconfig/network-scripts/を見ると、vagrantがprivate network用のスクリプトを配置している。ネットワークスクリプト中では、"NM_CONTROLLED=no"としているが、恐らく、このネットワークスクリプトを配置したことをNetworkManagerに知らせていないので、スクリプトの設定をNetworkManagerが掃除してしまうのではないかと推測するがどうだろう。