流浪者 synced_folder /流浪者 shared_folder 失踪

Vagrant synced_folder /vagrant shared_folder missing

嗨,我正在尝试使用 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

默认情况下,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 文件夹下(随意重命名项目或其他名称)并且您不需要将所有 vagrant 脚本和配置脚本与您的同步Web 服务器文件夹。