Ответ 1
Чтобы найти каталог Vagrantfile, попробуйте это в Vagrantfile:
vagrant_root = File.dirname(__FILE__)
Я пытаюсь настроить свой Vagrantfile, чтобы он автоматически создавал папку в корне проекта, если она отсутствует. Создание папки не проблема, но у меня возникают проблемы с поиском, где создать эту папку.
Мне удалось выяснить, что эта информация доступна для объекта Vagrant::Environment
как cwd
, но я не могу понять, как получить текущий экземпляр из моего Vagrantfile. Документация для Vagrant кажется немного разреженной.
Edit:
Мой вопрос не в том, как использовать Puppet. Я пишу код внутри Vagrantfile. Я хочу знать, как получить текущий экземпляр Vagrant::Environment
.
Чтобы найти каталог Vagrantfile, попробуйте это в Vagrantfile:
vagrant_root = File.dirname(__FILE__)
По умолчанию корневой каталог /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",
}
Я не уверен, что этот объект Vagrant::Environment
... кажется, недокументирован...
Если бы я хотел создать новую папку в том же каталоге, что и мой Vagrantfile
, я бы просто использовал средство обеспечения оболочки:
config.vm.provision :shell, :inline => "mkdir -p /vagrant/test_folder;"
Если вам нужна папка, содержащая Vagrantfile
на вашей машине, попробуйте поместить ее в свой Vagrantfile
:
puts Dir.pwd
Это должно печатать каталог... поэтому вы можете попробовать сделать что-то с этой переменной.