Еще одна интересная особенность VirtualBox - общие папки, дающие возможность легко обмениваться файлами между гостевой и хост-машинами. Разумеется, Vagrant предоставляет удобный способ настройки данной опции. Все, что нужно, - это немного поправить конфигурационный файл:
Vagrant::Config.run do |config|
config.vm.shareholder "data", "/data", "data" end
Важно заметить также, что папки, использующие протокол NFS (Network File System), показывают лучшую производительность, нежели общие папки виртуалбокса. С другой стороны, NFS не поддерживается на хостах с Windows. Для того чтобы использовать NFS вместо VirtualBox shared folders, необходимо это явно указать в настройках:
Vagrant::Config.run do |config[
config.vm.share_folder("data", "/data", "data",
:nfs => true) end
Снэпшоты и песочница
Поскольку Vagrant предоставляет гибкий АРI для расширения своего функционала, неудивительно, что существует немалое количество плагинов для Vagrant, решающих самые различные задачи. На случай, если у тебя появятся новые идеи, какие новые возможности можно добавить в вагрант, - в документации есть специальный раздел, содержащий все необходимые настройки и примеры lbit.lv/126ilsMl.
Sahara
Плагин представляет собой песочницу для виртуальных машин: если что-то поломалось, можно легко и просто откатить до последнего снэпшота. Плагин является руби-гемом (что вполне ожидаемо) и называется sahara (https://github.,com/ieidiuever/sahara). После его установки в вагранте появляется дополнительная команда - vagrant sandbox. Типичный пример использования выглядит так. Включаем режим песочницы:
$ vagrant sandbox on
Производим определенные действия (работаем с файлами, меняем настройки и прочее):
$ vagrant ssh
Если результат работы нас удовлетворил - сохраняем сделанные изменения:
$ vagrant sandbox commit
В противном случае откатываем неугодные правки:
$ vagrant sandbox rollback
И выходим из режима песочницы:
$ vagrant sandbox off