Назад | Перейти на главную страницу

Как загрузить файлы конфигурации с помощью поставщика оболочки?

Помимо установки приложений, таких как emacs, на мою гостевую машину, я также хотел бы загрузить некоторые файлы конфигурации (например, для настройки emacs для разработки Clojure). К сожалению, документация Vagrant не дает ни малейшего представления о том, как это сделать. Думаю, мне придется поместить файлы конфигурации в общую папку, а затем скопировать их из общей папки на гостевом компьютере в нужные места?

Вы можете использовать "файловый" провайдер. Вроде бы недокументированный, но использование простое. Например:

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

  config.vm.provision :file do |file|
    file.source      = '~/.my.conf'
    file.destination = '/home/vagrant/.my.conf'
  end
end

Первая загвоздка в том, что он запускается от имени пользователя ssh (по умолчанию "vagrant") без sudo, поэтому вам необходимо иметь доступ для записи в каталог на виртуальной машине. Обходной путь - скопировать во временное место, а затем использовать обычный провайдер оболочки, чтобы скопировать / переместить его в нужное место.

Вторая проблема заключается в том, что целевые пути не раскрываются правильно. Итак, используя ~ или $HOME скорее всего, не будет работать должным образом. (Исходный путь с другой стороны является расширен.)

Да, вам следует «поместить файлы конфигурации в общую папку, а затем скопировать их из общей папки на гостевой машине в желаемое место».