为什么默认的Vagrant共享文件夹是空的?

9

/vagrant 目录为空。它应该包含我的 Vagrantfile 所在的工作区。我可以通过 cd /vagrant 命令进入该目录,但是里面是空的。


Vagrantfile

VAGRANTFILE_API_VERSION = '2'
VAGRANT_BOX_NAME = 'nomades.local'

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = 'bento/centos-6.7'
  config.vm.box_check_update = false
  config.vm.hostname = VAGRANT_BOX_NAME

  config.vm.define VAGRANT_BOX_NAME do |dev|
    dev.vm.provider 'virtualbox' do |v|
      v.name = VAGRANT_BOX_NAME
      v.memory = 512
      v.cpus = 2
      v.gui = true
      v.customize ['modifyvm', :id, '--ioapic', 'on', '--vram', '16']
    end

    # Réseau (penser à configurer son /etc/hosts pointant vers cette ip)
    dev.vm.network 'private_network', ip: '192.168.12.2'

    # In order to use VPN
    # dev.vm.network 'public_network', ip: '172.32.0.101'

    # Provision
    dev.vm.provision "ansible" do |ansible|
      ansible.groups = {
          'vagrant' => [VAGRANT_BOX_NAME],
          'servers' => [VAGRANT_BOX_NAME],
      }
      ansible.playbook = 'provision/provision.yml'
      ansible.sudo = true
    end
  end
end

这个回答解决了你的问题吗?/vagrant not populated with files - ggorlen
3个回答

11

当Vagrant无法修改/etc/fstab并尝试从主机挂载当前工作目录时会发生这种情况。确保它有权限挂载该目录。

在Vagrant guest VM上运行此命令,然后退出登录。

$ sudo /etc/init.d/vboxadd setup

在主机上运行此命令。

$ sudo vagrant reload
$ vagrant ssh

确实是sudo问题,你的解决方案有效,谢谢! - sab
谢谢!在Windows中,您不需要以管理员身份运行vagrant reload - forzagreen
1
对我而言,在MacOS上仅需要在主机上运行vagrant reload即可使文件夹再次同步。 - Ivan Carosati

2
这个问题发生在我手动重启虚拟机后(即sudo reboot)。从主机重新启动解决了我的问题。
$ vagrant halt
$ vagrant up

这真的有帮助,而重新启动我的主机并没有 :/ - Druckles

0

你需要在Vagrantfile中定义以下这行,.代表当前目录

config.vm.synced_folder ".", "/vagrant"


据我所知,/vagrant目录不需要额外的定义,因为它会自动映射到当前目录。配置文件说,只有当你需要“额外”的共享时才需要这样做。 - Markus Zeller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接