我正在尝试创建一个仅运行 shell 脚本的简单 Vagrant 供应商。这是我到目前为止所拥有的:
Vagrant.configure("2") do |config|
config.vm.provision "reset", type: "shell", run: "always" do |s|
s.privileged = false
s.path = "run.sh"
end
end
所以想法是,当这个provisioner运行时,它会打开run.sh文件作为起点。这很好,但是,我想在run.sh文件中加载其他脚本:
运行.sh
for each in scripts/*.sh;
do
bash $each > /dev/null 2>&1 ;
rm $each > /dev/null 2>&1 ;
done ;
问题出在/scripts/目录上。它位于 Vagrantfile 所在的 Vagrant 文件夹内,但其内容run.sh实际上已复制到新位置并从那里运行。所以问题是我无法真正访问该scripts目录。有解决方案吗?