1. ホーム
  2. virtualbox

[解決済み] Vagrantのプロジェクトディレクトリを既存のVirtualBox VMに関連付けるにはどうすればよいですか?

2022-06-24 18:34:58

質問

VagrantプロジェクトがVirtualBox VMから切り離されてしまいました。 vagrant up Vagrant はベースボックスをインポートして、新しい仮想マシンを作成します。

Vagrantプロジェクトと既存のVMを再度関連付ける方法はありますか? Vagrantは内部的にどのようにVagrantfileをVirtualBoxのVMディレクトリに関連付けるのでしょうか?

どのように解決するのですか?

警告です。 以下の解決策は Vagrant 1.0.x では動作しますが ではなく Vagrant 1.1+ では動作しません。

Vagrant は、"Vagrantfile" と同じディレクトリにある ".vagrant" ファイルを使って、VM の UUID を追跡しています。VMが存在しない場合、このファイルは存在しません。ファイルの形式はJSONです。VMが1つだけ存在する場合は、以下のようになります。

{
   "active":{
      "default":"02f8b71c-75c6-4f33-a161-0f46a0665ab6"
   }
}

default はデフォルトの仮想マシンの名前です (マルチ VM セットアップを使用していない場合)。

VM が何らかの理由で切り離された場合、できることは次のとおりです。 VBoxManage list vms で、VirtualBox が知っているすべての VM をその名前と UUID でリストします。次に、手動で .vagrant と同じディレクトリに Vagrantfile というファイルを作成し、その中身を適切に埋めてください。

実行する vagrant status を実行して、Vagrantが適切な変更を取り込んだことを確認します。

注意してください。 これはVagrantが公式にサポートしているものではなく、Vagrantは以下のフォーマットを変更する可能性があります。 .vagrant のフォーマットをいつでも変更できます。しかし、これは Vagrant 0.9.7 の時点では有効であり、Vagrant 1.0 でも有効でしょう。