Vagrantの仮想マシンとの紐付けの直し方

何かの拍子でVagrantと既存の仮想マシンとの紐付けが削除されて、vagrant up実行時に新たな仮想マシンを作成してしまうことがあります。 たまによくあります。

【環境】

ご利用のVagrantのバージョンによっては設定ファイルの構成が異なります。その場合は本記事末尾のリンク先が参考になるかもしれません。


作成済み仮想マシンを起動しようとして、

$ vagrant up

すると、通常は

[default] VM already created. Booting if it's not already running…

のように表示され、既存の仮想マシンが起動するが、
何かの拍子でVagrant仮想マシンの紐づけが外れてしまったのか、Vagrantが新しい仮想マシンを作り直してしまうことがある。

それでは困るので、既存の仮想マシンとの紐づけをやり直させる方法。

Vagrant仮想マシンの紐づけ情報

Vagrantfile と同じ場所にある .vagrant/ ディレクトリ配下にある以下のファイルで、仮想マシンのUUIDと紐づけされている。

/path/to/.vagrant/machines/default/virtualbox/id

仮想マシンのUUIDを知る

以下のコマンドを叩く。*1

$ VBoxManage.exe list vms
"hoge_default_1380015208" {bf3b3845-6094-1111-b0d6-xxxx8be8272f} # 以前作った既存のVM。こっちを使いたい。
"hoge_default_1380096089" {af4836db-d36c-2222-a073-yyyydb886ce6} # 新規に作られてしまったVM。要らない。

bf3b3845-6094-1111-b0d6-xxxx8be8272f の部分が仮想マシンのUUID。

Vagrant仮想マシンの紐づけを修正する

.vagrant/machines/default/virtualbox/id をエディタで開き、紐づけたい仮想マシンのUUID bf3b3845-6094-1111-b0d6-xxxx8be8272f を貼り付ける。

※ファイルの中にはUUIDだけが書かれているようにする。

いざ

$ vagrant up

やったぜ。

その他の参考記事

本記事のVagrantより古いバージョン(<1.2.7)をお使いで、.vagrantディレクトリでなくファイルの場合

douzen.net

*1:VBoxManage.exeにパスが通ってない?。通常は C:\Program Files\Oracle\VirtualBox あたりにあるんじゃないかしら。