Восстановление настроек коробочки
Иногда случается так, что случайно или намеренно была удалена папка .vagrant, содержащая настройки для подключения к ранее созданной виртуальной машине.
Восстанавливаем конфигурацию
$ vagrant up
При этом будет создана новая виртуальная машина с настройками по умолчанию. В данном случае мы рассматриваем виртуальную машину на базе Virtualbox. Для восстановления нужных нам настроек мы открываем Virtualbox.app находим вновь созданную машину и останавливаем ее. Далее находим папки содержащие старые и новые файлы конфигурации виртуальной машины и жесткого диска. Как правило это файл с расширение vmdk.
Допустим старая машина называлась workshop_y2aa_1019854008234_12823 и ее файлы конфигурации находились в папке
/Users/imac/VirtualBox VMs/workshop_y2aa_1019854008234_12823/contrib-stretch.vmdk
Где contrib-stretch.vmdk - это название виртуального жесткого диска, состоящее из название установленного дистрибутива. Описанного в конфигурационном файле Vagrantfile. К примеру для Debian 9 contrib это будет -
config.vm.box = 'debian/contrib-stretch64'
Копируем из старой папки только файл - образа жесткого диска. Для MacOS, он находится в папке по адресу /Users/imac/VirtualBox VMs/
Пример:
$ cp/Users/imac/VirtualBox VMs/workshop_y2aa_1019854008234_12823/contrib-stretch.vmdk /Users/imac/VirtualBox VMs/workshop_y2aa_1519853008354_63852/contrib-stretch.vmdk
Затем запускаем машину и логинимся как обычно, или с помощью ключа или пароля. Запускать машину необходимо через Virtualbox.app, так как vagrant устанавливает седенение с хост машиной с использованием rsa ключа, который на данный момент у нас отсутствует.
Восстанавливаем ключи для запуска через vagrant
Переходим на страницу с заранее созданными ключами https://github.com/hashicorp/vagrant/tree/master/keys (благодарим hashicorp), или создаем ключи с помощью утилиты ssh-keygen (varant работает только с RSA ключами).
Прописываем приватный ключ https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrantдля vagrant в файл
.vagrant/machines/y2aa/virtualbox/private_key
И затем заходим на виртуальную машину и там прописываем ключ https://raw.githubusercontent.com/hashicorp/vagrant/master/keys/vagrant.pub
~/.ssh/authorized_keys
Затем перезапускает нашу виртуальную машину через vagrant
$ vagrant halt $ vagrant up