4

Мы используем vagrant и puppet для настройки наших тестовых сред, это работает разумно. Но иногда возникает странная причуда. После того, как кто-то построил новый ящик и использовал его в течение некоторого времени, бродяга внезапно игнорирует существующий ящик и создает новый.

Это довольно раздражает, потому что коробка на самом деле хорошо. Как я могу переназначить старую коробку в свой бродячий файл?

2 ответа2

8

Это может происходить иногда, когда VirtualBox не может сообщить информацию о машине. Новые версии Vagrant пытаются получить его несколько раз, но я думаю, что это все еще возможно.

Сопоставление выполняется в каталоге .vagrant проекта. Например, при обычной настройке одной виртуальной машины UUID машины сохраняется в .vagrant/machines/default/virtualbox/id . Вы можете получить список существующих виртуальных машин VirtualBox с VBoxManage list vms .

0

Я обнаружил, что это происходит, когда вы изменяете неназванную конфигурацию в именованную конфигурацию в вашем Vagrantfile. Например, если вы измените свой VagrantFile с

Vagrant.configure(2) do |config|
  config.vm.provision :shell, :path => "vagrant/install.sh"
end

в

Vagrant.configure(2) do |config|
  config.vm.define "dev" do |dev|
    dev.vm.provision :shell, :path => "vagrant/install.sh"
  end
end

и затем vagrant reload , vagrant потеряет отслеживание того факта, что ранее неназванная конфигурация теперь называется dev , и будет рассматривать dev как совершенно новую VM (даже если это также виртуальная машина по умолчанию и только VM в Vagrantfile).

Вы также можете:

  • уничтожить старую виртуальную машину вручную (например, открыв VirtualBox и удалив ее); или же
  • верните свой Vagrantfile обратно, Vagrant vagrant destroy , затем бросьте Vagrantfile вперед и Vagrant vagrant up .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .