Vagrant.d вне домашней папки

У меня проблема с тем, что мой домашний каталог находится на удаленном сервере и с ~/.vagrant.d сидит на этом сервере, производительность бродяг сильно уменьшается (и размер резервной копии файлового сервера увеличивается).

Итак, есть ли способ передвинуть по крайней мере ~/vagrant.d/коробки из домашнего каталога?

Приветствия.

Ответ 1

По умолчанию Vagrant использует ~/.vagrant.d. К счастью, бродяга предоставляет переменную среды, называемую VAGRANT_HOME, с помощью которой вы можете установить бродячий дом.

Просто выполните следующие действия, чтобы изменить дом бродяг (это работает только в текущем сеансе)

export VAGRANT_HOME=/path/to/vagrant

Чтобы сделать его постоянным, добавьте его в свой ~/.bash_profile (для оболочки входа).

Обновление: VAGRANT_HOME добавлено в документацию - Экологические переменные

VAGRANT_HOME можно установить для изменения каталога, в котором Vagrant хранит глобальное состояние. По умолчанию установлено значение ~/.vagrant.d. Домашний каталог Vagrant - это то, где хранятся вещи, такие как ящики, поэтому он может фактически стать довольно большим на диске.

Ответ 2

VAGRANT_HOME не работает в моей Windows 8.1. Это сработало для меня, когда я изменил файл

D:\HashiCorp\Вагрант\встроенных\драгоценных камни\драгоценных камней\бродячего-1.5.3\Lib\бродячая\environment.rb

в строке 117 на

@home_path = Util::Platform.fs_real_path("D:/vagrant/home/")

как сказал Стив Х, и он отлично работает.

Ответ 3

Возможно, было бы полезно постоянно устанавливать это в окне Windows, выполняя

setx VAGRANT_HOME "/d/.vagrant.d/"

Ответ 4

В Windows измените строку 17 среды .rb, расположенную по адресу:
бродяга\встроенные\драгоценные камни\драгоценные камни\vagrant-1.x.x.dev\Lib\бомж\environment.rb

Ответ 5

другое место (корневое место, где он читает переменные ENV) находится в shared_helpers.rb, строка 71 (vagrant v 1.6.5):

 # This returns the path to the ~/.vagrant.d folder where Vagrant's
  # per-user state is stored.
  #
  # @return [Pathname]
  def self.user_data_path
    # Use user spcified env var if available
    path = ENV["VAGRANT_HOME"]

    # On Windows, we default to the USERPROFILE directory if it
    # is available. This is more compatible with Cygwin and sharing
    # the home directory across shells.
    if !path && ENV["USERPROFILE"]
      path = "#{ENV["USERPROFILE"]}/.vagrant.d"
    end

    # Fallback to the default
    path ||= "~/.vagrant.d"

    Pathname.new(path).expand_path
end

В любом случае, я думаю, что лучший способ - использовать переменную окружения VAGRANT_HOME, в случае обновления бродячей версии.

Вы можете использовать эту функцию, например:

disk_path = self.user_data_path().to_s