Найти папку Vagrantfile

Я пытаюсь настроить свой Vagrantfile, чтобы он автоматически создавал папку в корне проекта, если она отсутствует. Создание папки не проблема, но у меня возникают проблемы с поиском, где создать эту папку.

Мне удалось выяснить, что эта информация доступна для объекта Vagrant::Environment как cwd, но я не могу понять, как получить текущий экземпляр из моего Vagrantfile. Документация для Vagrant кажется немного разреженной.

Edit:

Мой вопрос не в том, как использовать Puppet. Я пишу код внутри Vagrantfile. Я хочу знать, как получить текущий экземпляр Vagrant::Environment.

Ответ 1

Чтобы найти каталог Vagrantfile, попробуйте это в Vagrantfile:

vagrant_root = File.dirname(__FILE__)

Ответ 2

По умолчанию корневой каталог /home/vagrant

Вот пример создания new_folder с помощью vagrant user

  exec { 'create folder':
    cwd     => '/home/vagrant',
    user    => 'vagrant',
    command => 'mkdir new_folder',
    unless  => "/usr/bin/test -d /home/vagrant/new_folder",
  }

Ответ 3

Я не уверен, что этот объект Vagrant::Environment... кажется, недокументирован...

Если бы я хотел создать новую папку в том же каталоге, что и мой Vagrantfile, я бы просто использовал средство обеспечения оболочки:

  config.vm.provision :shell, :inline => "mkdir -p /vagrant/test_folder;"

Если вам нужна папка, содержащая Vagrantfile на вашей машине, попробуйте поместить ее в свой Vagrantfile:

  puts Dir.pwd

Это должно печатать каталог... поэтому вы можете попробовать сделать что-то с этой переменной.