アットウィキロゴ

vagrant packageで生成したboxの再利用がうまくいかない件

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