带有内部交换机的hyper-v上的Vagrant同步文件夹(smb)

时间:2018-03-17 17:30:36

标签: vagrant hyper-v

我正在尝试通过流浪汉配置虚拟机,但无法弄清楚当我使用内部交换机时如何使同步文件夹(smb)正常工作。

我使用hyper-v作为管理程序,其中一个限制是无法从vagrant强制执行VM的静态IP。我有一个脚本在客户机器中设置一个静态IPv4,运行provisioning步。

问题是在配置开始之前已挂载同步文件夹。此时主机网络无法访问,安装失败,vagrant up以错误结束。

我想到的一个可能的解决方案(但没有工作)是弄清楚VM是否已经配置并在这种情况下启用同步文件夹。我希望插件vagrant-reload可以帮助我,但同步文件夹不会再次重新评估。

任何能给我一些指示的人吗?

我的机器配置:

  • 主机:Windows 10
  • 嘉宾:CentOS7
  • Hypervisor:Hyper-V

我的vagrantfile:

Vagrant.configure(2) do |config|
    provisioned = File.exist?(".vagrant/machines/default/hyperv/action_provision")

    config.vm.box = "centos/7"
    config.vm.network "private_network", bridge: "Vagrant"

    config.vm.synced_folder "./shared", "/shared", type: "smb",
        disabled: provisioned == false,
        smb_host: "10.0.0.3",
        smb_username: "vagrant", 
        smb_password: "vagrant",
        mount_options: ["username=vagrant","password=vagrant"]

    config.vm.provision "file",
        source: "./provisioning",
        destination: "/tmp/provisioning" 

    config.vm.provision "static-ip",
        type: "shell",
        inline: "/bin/sh /tmp/provisioning/static-ip.sh"

    config.vm.provision :reload

    config.vm.provider 'hyperv' do |hv|
        hv.ip_address_timeout = 240
        hv.cpus = 2
        hv.memory = "2048"
        hv.vmname = "centos"
    end
end

请注意:当我使用默认开关或外接开关时,我的工作正常。但是我想通过一个内部交换机来测试具有永远不会连接到互联网的VM的场景。

0 个答案:

没有答案