2016-10-08 64 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