2013-06-29 57 views
10

我想調整我的Vagrant文​​件,以便它自動在項目根目錄下創建一個文件夾(如果缺失)。創建文件夾沒有問題,但我無法找到,其中創建該文件夾。找到Vagrantfile文件夾

我能夠知道這個信息在Vagrant::Environment對象上有cwd的可用性,但我無法弄清楚如何從我的流浪文件中獲取當前實例。 Vagrant的文件似乎有點稀疏。

編輯:

我的問題不是關於如何使用木偶。我在裏面寫了一些代碼這個Vagrantfile。我想知道如何獲取Vagrant::Environment的當前實例。

+0

你能給的你正在嘗試做一個更好的例子嗎? –

+0

我提到了我想調用的方法,我只是不知道如何獲得當前類的實例。 –

回答

18

要找到Vagrantfile目錄試試這個在Vagrantfile:

vagrant_root = File.dirname(__FILE__) 
0

默認情況下,根目錄是/home/vagrant

這裏使用vagrant用戶

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

我的問題不是關於傀儡。 –

+0

'/ home/vagrant'位於虛擬機上,通常情況下不會找到Vagrantfile。我認爲OP正在詢問主機上***的Vagrantfile目錄***,因爲它在虛擬機上的位置只是由於共享/同步目錄而存在。 – iconoclast

0

我不知道這Vagrant::Environment對象是什麼創造new_folder一個例子......這似乎是無證...

如果我想在與我的Vagrantfile相同的目錄中創建一個新文件夾,我只需使用shell供應商:

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

如果你想包含Vagrantfile你的主機上的文件夾,然後嘗試把這個在您的Vagrantfile

puts Dir.pwd 

應打印該目錄...所以你可以再嘗試與做事那個變量。

+2

Dir.pwd會在根目錄中提供vagrant root,但是如果在子目錄中,它會提供該目錄。 – patcon