Vagrant synced_folder / vagrant shared_folder缺失

时间:2017-10-26 12:02:23

标签: vagrant ansible vagrantfile

您好我尝试使用vagrant和ansible来配置我的盒子,但我总是遇到/vagrant/ansible/playbook.yml缺失。它正在寻找/ vagrant目录。当我在我的盒子里ssh时,/ vagrant不存在。我不知道发生了什么,但我所做的是将我的所有本地副本同步到我框内的特定文件夹位置。以下是我做过的示例实现

Vagrant.configure("2") do |config|

    config.vm.define "ans", primary: true do |ans|
        ans.vm.box = "ubuntu/xenial64"
        ans.vm.network "forwarded_port", guest: 80, host: 8080
        ans.vm.network "private_network", ip: "10.8.9.20", auto_network: true
        ans.vm.synced_folder ".", "/var/www/"
        ans.vm.hostname = "my_project"
        ans.vm.provision "pre-build", type: "shell", :path => "ansible/bootstrap.sh"
        ans.vm.provision "ansible_local" do |ansible|
            ansible.playbook = "ansible/playbook.yml"
        end
    end
end

我在ansible.playbook = "ansible/playbook.yml"中收到错误,似乎此行正在查看不存在的/ vagrant文​​件夹。解决方法或解决方法是什么?我的剧本存在于框内的/var/www/ansible/playbook.yml位置

1 个答案:

答案 0 :(得分:0)

默认情况下,vagrant会自动从当前目录中添加一个共享文件夹,并在VM上添加/vagrant文件夹。

因为您已添加

ans.vm.synced_folder ".", "/var/www/"

当前文件夹共享文件夹已从/vagrant替换为/var/www(您可以通过删除vagrantfile中的行来轻松验证)

您真的需要将整个当前文件夹与/var/www同步吗?理想情况下,您将项目文件放在您将在/var/www中共享的子目录中

ans.vm.synced_folder "html/", "/var/www/"

并将所有html / csss / js文件推送到html文件夹下(随意重命名项目或其他内容),您不需要将所有流浪脚本和配置脚本与Web服务器文件夹同步。