在VMWare VM中运行Vagrant

我意识到这基本上是OSCeption(操作系统启动),但我认为它可能对我最有意义(请告诉我,如果有更好的select,这似乎很可怕)。

这是情况:我有一个Windows 8的机器。 我喜欢它 – 除了开发,它对任何事情都很好。 对于开发,我一直在使用运行Ubuntu的VMWare虚拟机。 我曾经使用过Cygwin,但是感觉不对。

我现在正在join一个项目,他们一直在使用Vagrant来pipe理开发环境,所以我需要能够使用Vagrant。 但是,从我看到的,Vagrant主要用于在一致的环境中运行代码,但不一定要编写它。 如果我想通过SSH进入我的stream浪箱来编写代码,那么我将不得不像我的.vimrc文件那样重新configuration我的首选项,而不是每个机器都configuration什么。

那么在我的Ubuntu VirtualMachine中安装Vagrant是否有意义? 我觉得在某些时候,虚拟机中的虚拟机会失控并导致问题。 有没有更好的方法来做到这一点?

编辑:所以我试了一下 – 正如我所料,我打了一些错误。 当我尝试启动机器时,出现以下错误消息:

Failed to open a session for the virtual machine vagranttest_1371583212. VT-x is not available. (VERR_VMX_NO_VMX). Result Code: NS_ERROR_FAILURE (0x80004005) Component: Console Interface: IConsole {db7ab4ca-2a3f-4183-9243-c1208da92392} 

看起来我的VMware虚拟机无法运行其他虚拟机。 任何想法最好的方法去做到这一点?

今天我遇到了同样的问题。 解决scheme非常简单。

  1. closuresvmware虚拟机。
  2. 转到“编辑虚拟机设置”
  3. 去处理器。 那里有三个checkbox。
  4. 选中第二个checkbox(启用VT-x / AMD-V)
  5. 开机。

这个virtualbox应该在vmware里面工作。

要回答原来的问题以及@ blong的Vagrant论坛post,这就是我所做的工作。

我试图做类似的事情(实际上是Vagrant / VMware托pipeVagrant / Vbox),我已经执行了所有我能想到的优化,为我的“主机”虚拟机提供了大量的RAM(24GB)和6个内核,禁用了交换通过设置“将所有虚拟机内存装入保留的主机内存”,并允许每个虚拟机页面文件(否则它们将存在于系统页面文件中,这限制了可以运行的虚拟机数量)一旦)。

我所做的一直是完美的,我所遇到的networking问题是由于我背后的公司代理。 一旦我configuration了我的虚拟机有互联网接入,一切都是正确的与世界。

我不得不通过Vagrantfile手动设置–natbindip1和–natnet1以及natdnsproxy1和naddnshostresolver1,这些已经在我的示例(Virtualbox)Vagrantfile中设置。 这些设置可以在Virtualbox文档中find正确的用法。

总结一下,在你的虚拟机CPU设置中使用VT-x passthrough /“虚拟化”选项,给虚拟机足够的内存,不要让这个内存在“根”主机上交换,并且要确保您的networking范围不会重叠,否则您将遇到路由问题。

这里是我正在从事的stream浪文件,它几乎完全基于andreptb的要求为现代stream行的设置。 https://gist.github.com/andreptb/57e388df5e881937e62a

 # -*- mode: ruby -*- # vi: set ft=ruby : # box name into env var, same script can be used with different boxes. Defaults to win7-ie11. box_name = box_name = ENV['box_name'] != nil ? ENV['box_name'].strip : 'win7-ie11' # box repo into env var, so private repos/cache can be used. Defaults to http://aka.ms box_repo = ENV['box_repo'] != nil ? ENV['box_repo'].strip : 'http://aka.ms' Vagrant.configure("2") do |config| # If the box is win7-ie11, the convention for the box name is modern.ie/win7-ie11 config.vm.box = "modern.ie/" + box_name # If the box is win7-ie11, the convention for the box url is http://aka.ms/vagrant-win7-ie11 config.vm.box_url = box_repo + "/vagrant-" + box_name # big timeout since windows boot is very slow config.vm.boot_timeout = 500 # rdp forward config.vm.network "forwarded_port", guest: 3389, host: 3389, id: "rdp", auto_correct: true # winrm config, uses modern.ie default user/password. If other credentials are used must be changed here config.vm.communicator = "winrm" config.winrm.username = "IEUser" config.winrm.password = "Passw0rd!" config.vm.provider "virtualbox" do |vb| # first setup requires gui to be enabled so scripts can be executed in virtualbox guest screen #vb.gui = true vb.customize ["modifyvm", :id, "--memory", "1024"] vb.customize ["modifyvm", :id, "--vram", "128"] vb.customize ["modifyvm", :id, "--cpus", "2"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000] end end 

我的其他更改:

 # Need the WinRM gem for managing from Linux $ sudo gem install winrm config.vm.communicator = "winrm" + config.winrm.host = "localhost" config.winrm.username = "IEUser" config.winrm.password = "Passw0rd!" # This one may not be necessary, I added it for completeness + config.vm.guest = :windows # In order to USE the two CPUs you need the ioapic # Virtualbox gives an error in the GUI and only shows 1 CPU in the VM otherwise vb.customize ["modifyvm", :id, "--cpus", "2"] + vb.customize ["modifyvm", :id, "--ioapic", "on"] # We had to modify the network range because we are running Virtualbox inside VMware + vb.customize ["modifyvm", :id, "--natnet1", "192.168.199.0/24"] 

删除+符号,并将这些行添加到上面的Vagrantfile,你应该有一个等同的工作系统,我一直在使用。

如果您在vSphere中的虚拟机上运行virualbox,则必须ssh到ESXi才能更新configuration。

脚步:

  1. ssh到ESXi服务器。
  2. find属于你的虚拟机的vmx文件find / -name *.vmx
  3. 关掉虚拟机(非常重要,否则你的改变将被覆盖)
  4. 编辑该vmx,在文件底部附加一个新的configuration: vhv.enable = "TRUE"
  5. 启动虚拟机
  6. 享受stream浪者。 🙂

我已经在两个VMware产品中尝试了这一点。 右键单击虚拟机:

  • 在“硬件”选项卡上的vCloud Director 5.5 VM属性中,有一个“Expose hardware-assisted CPU virtualization to guest OS”checkbox,但它对我来说是灰色的。 因人而异。
  • 在vSphere Version 5.5.0编辑设置>虚拟硬件> CPU中,该checkbox被称为“公开硬件辅助虚拟化到客户操作系统”,并为我工作。