mac vagrantで $ vagrant package で生成したbox(CentOS)を再利用するときに、
ネットワークがおかしくなるのを解決する
1.元のPCでパッケージ化したpackage.boxを、再利用するPC側で vagrant box addする
$vagrant box add centos package.box
※ ホストpcのvagrantfileがあるディレクトリと、ゲストosの/home/vagrant/は共有ディレクトリに
なっているので、ここにpackage.boxを置き、上のコマンドを実行する。
2.vagrant を初期化する
vagrantのVMを起動させたいディレクトリをつくり、そこから以下のコマンドを実行。
$ vagrant init centos ※centosの部分はbox名を指定する。1つの場合は指定しなくても可。
そうすると、vagrantfile が作成される
3.vagrantのVMを起動させたいディレクトリに移動して、vagrantのVMを起動する。
$ vagrant up
1)このときに以下のエラーとなる。(ネットワークアドレスとMacアドレスのマッピングエラーらしい)
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
ARPCHECK=no /sbin/ifup eth1 2> /dev/null
Stdout from the command:
Device eth1 does not seem to be present, delaying initialization.
Stderr from the command:
2)解消方法は二つある(boxの生成元で対応する方法、boxの再利用側で対応する方法)
a.以下は、boxの再利用側で対応する方法
①ゲストOS(CentOS)側にログインし、次の2つの設定ファイルを削除する。
$sudo rm /etc/udev/rules.d/70-persistent-net.rules
$sudo rm /etc/sysconfig/network-scripting/ifcfg-eth1
※削除した上記ファイルは、VMを再起動(vagrant halt → vagrant up)することで自動的に生成される。
②ゲストosをexitして、vagrantのVMを再起動して、改めてゲストosにログインする。
b.以下は、boxの生成元で対応する方法
①以下のファイルを無効にする。(以下のファイルを/del/nullのシンボリックリンクにする)
$sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
※有効にする方法は、/etc/udev/rules.d/70-persistent-net.rulesをrmで削除する。
再起動すると、a.の場合と同じように、このファイルは自動的に生成される。
以下サイトを参考にさせていただきました。
※参考にさせていただき、うまくいきました。ありがとうございました。
最終更新:2014年08月30日 14:33