Один Vagrantfile для OS X и Windows

Мы используем vagrant в нашей команде, чтобы мы могли создавать идентичные среды разработки. Хотя в большинстве случаев он отлично работает, мы столкнулись с некоторыми проблемами, характерными для основной ОС, будь то OS X или Windows, например. при использовании синхронизированных папок параметры nfs => false, :nfs_version => 3 необходимо изменить.

Есть ли рекомендуемый способ справиться с этим? Должен ли Vagrantfile сначала обнаружить среду хоста, а затем действовать соответствующим образом? Поскольку мы используем его все больше и больше, мне не нужны случаи, когда у одного разработчика есть проблемы, характерные для Vagrant/Windows, и поэтому он изменяет Vagrantfile, продвигая свои изменения, а затем разработчик, разработанный для OS X, извлекает этот измененный Vagrantfile, и он не работает. работает правильно, поэтому он вносит изменения, относящиеся к его системе и т. д.


person Philip O'Brien    schedule 15.09.2014    source источник


Ответы (1)


Vagrantfile — это просто рубин, поэтому вы можете легко вставить условие, которое зависит от ОС хоста:

Vagrant.configure("2") do |config|
  # ...

  if RUBY_PLATFORM =~ /darwin/
    config.vm.synced_folder ".", "/vagrant", type: "nfs"
  else
    # ...
  end
end
person Emyl    schedule 15.09.2014
comment
Должны ли мы беспокоиться о RUBY_VERSION в JRuby? Будет ли когда-либо работать Vagrant на JRuby? - person bonh; 17.12.2015