2016-10-08 63 views
1

在流浪者配置階段運行的文件的路徑是什麼?在Vagrant配置期間運行腳本時從文件讀取?

在Vagrantfile,放置文件正確的目錄,我有一個運行shell腳本(例如:`道:」撥備/ setup.sh')一個config.vm.provision

setup.sh文件讀取從另一個文件在同一個文件夾中運行git repos列表,將文件放在客戶端機器上

該腳本在Vagrant之外正常工作,但我很難找到我應該說的地方這是導致問題的代碼示例:

filename='./provision/gitrepos' 
exec 4<$filename 
echo Start 
while read -u4 p ; do 
    if [ ! -z "$p" ]; 
    then 
    is_website $p 
    else 
    echo 
    echo "This line '#$p' is blank" 
    echo 
    fi 
    done 

問題出現在這裏:filename='./provision/gitrepos' 在執行vagrant up時,該文件不再被視爲在主機上,而是在其他地方。但是,如何找到與setup.sh文件位於同一目錄中的文件的位置呢?

我試過`filename ='。/ gitrepos',但似乎相對路徑不起作用。

如何找到這些文件夾和文件的位置,以便在配置階段訪問它們?

+0

要清楚,'setup.sh'和'gitrepos'文件都在同一個目錄中,但是如果Vagrant是運行該腳本的文件,我無法弄清楚如何訪問該文件。 –

回答

0

供應腳本從/tmp文件夾執行 - 如果你ssh進入你的虛擬機並檢查臨時文件夾,你會看到類似vagrant-shell的東西與你的腳本內容。但是,並非您目錄中的所有文件都被推送到/tmp文件夾。

如果您gitrepos文件是項目目錄中是默認/vagrant目錄下的共享,所以你可以從那裏

如果它不是你需要創建一個特定sync_folder,所以你可以閱讀從內部文件中讀取VM