Ubuntu上VirtualBox上的流浪者

Ubuntu上VirtualBox上的流浪者,ubuntu,vagrant,windows-10,virtualbox,hyper-v,Ubuntu,Vagrant,Windows 10,Virtualbox,Hyper V,我需要建立一个文件。我需要使用Ansible(因此,我无法使用Windows) 但我的主要操作系统是Windows10。我可以在Hyper-V或VirtualBox上安装Ubuntu 1) 我创建Hyper-V机器并在上面安装Ubuntu。但是vagrantfile不能使用hyper-v作为提供程序,需要virtualbox 2) 如果我试图在VirtualBox上启动虚拟Ubuntu,我会出错 Failed to open a session for the virtual machine U

我需要建立一个文件。我需要使用Ansible(因此,我无法使用Windows)

但我的主要操作系统是Windows10。我可以在Hyper-V或VirtualBox上安装Ubuntu

1) 我创建Hyper-V机器并在上面安装Ubuntu。但是vagrantfile不能使用hyper-v作为提供程序,需要virtualbox

2) 如果我试图在VirtualBox上启动虚拟Ubuntu,我会出错

Failed to open a session for the virtual machine Ubuntu.

AMD-V is not available (VERR_SVM_NO_SVM).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}
2) 如果我在Windows上关闭Hyper-V,我可以在VirtualBox上启动Ubuntu

但是,当我尝试向上游荡时,我有一个错误:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["startvm", "4e3f95fd-2ad3-423f-a39a-ffd65cfe0d46", "--type", 
"headless"]

Stderr: VBoxManage: error: AMD-V is not available (VERR_SVM_NO_SVM)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component 
ConsoleWrap, interface IConsole
在VirtualBox设置中,启用AMD-V/VT-x

是否有机会在虚拟Ubuntu上与vagrant合作?将真正的主系统从Windows改为Ubuntu是非常不可取的

谢谢你的帮助

更新。我可以添加我的virtualbox和BIOS屏幕截图,也许会有用

VirtualBox:

这是我的Ubuntu机器:

AMD-V已启用:

BIOS:

结果,我成功地配置了unix子系统并安装了vbox、vagrant和ansible。但是当我输入Wagrant up时,我看到了

VirtualBox is complaining that the installation is incomplete. Please run 
VBoxManage --version to see the error message which should contain 
instructions on how to fix this error. 
因此,我运行
VBoxManage--version

The character device /dev/vboxdrv does not exist. Please install the 
virtualbox-dkms package and the appropriate headers, most likely linux-
headers-3.4.0+. You will not be able to start VMs until this problem is 
fixed   

如果我尝试安装virtualbox dkms,它会说最新版本已经安装。

如果我理解正确,您希望使用Windows 10作为主机操作系统,在该主机操作系统上作为虚拟机运行Ubuntu(使用Hyper-V或virtualbox),然后运行嵌套在第一个虚拟机中的另一个虚拟机(使用Vagrant/VirtualBox)。这称为“嵌套虚拟化”

我认为VirtualBox上的64位来宾操作系统不可能实现嵌套虚拟化,因为VirtualBox

对于Hyper-V,但官方仅支持来宾系统中运行的Hyper-V。从文档中可以看出:“Hyper-V虚拟机不支持Hyper-V以外的虚拟化应用程序,可能会失败。这包括任何需要硬件虚拟化扩展的软件。”

您仍然可以尝试在Hyper-V上运行的VM中运行Vagrant和VirtualBox,看看它是否适合您

从更广泛的角度来看这个问题,我想知道您是否可以同时运行这两个虚拟机。。。比如:

  • 在Windows 10上使用VirtualBox和Vagrant
  • 在VirtualBox上创建一个Ubuntu虚拟机以在网络N上运行Ansible
  • 使用Vagrant在网络N上创建另一个VM
  • 也就是说,我对Ansible不太了解,所以我可能遗漏了一些东西


    披露:我在微软的Hyper-V团队工作。

    如果我理解正确,您希望使用Windows 10作为主机操作系统,在该主机操作系统上作为虚拟机运行Ubuntu(使用Hyper-V或VirtualBox),然后运行嵌套在第一个虚拟机中的另一个虚拟机(使用Vagrant/VirtualBox)。这称为“嵌套虚拟化”

    我认为VirtualBox上的64位来宾操作系统不可能实现嵌套虚拟化,因为VirtualBox

    对于Hyper-V,但官方仅支持来宾系统中运行的Hyper-V。从文档中可以看出:“Hyper-V虚拟机不支持Hyper-V以外的虚拟化应用程序,可能会失败。这包括任何需要硬件虚拟化扩展的软件。”

    您仍然可以尝试在Hyper-V上运行的VM中运行Vagrant和VirtualBox,看看它是否适合您

    从更广泛的角度来看这个问题,我想知道您是否可以同时运行这两个虚拟机。。。比如:

  • 在Windows 10上使用VirtualBox和Vagrant
  • 在VirtualBox上创建一个Ubuntu虚拟机以在网络N上运行Ansible
  • 使用Vagrant在网络N上创建另一个VM
  • 也就是说,我对Ansible不太了解,所以我可能遗漏了一些东西


    披露:我在微软的Hyper-V团队工作。

    事实上,你可以使用Windows(某种程度上)。至少,Ansible不需要完整的Linux虚拟机。试着在Windows10中运行WindowsSubsystem for Linux,这样您就可以使用Ansible了

    您可以安装支持Hyper-V提供程序的Vagrant for Windows。现在,在windows上的Bash中,您可以同时使用:Linux ansible binary和windows vagrant.exe(它将启动您的常规windows控制台),这两者都可以在Bash shell中使用

    我以这种方式非常方便地使用Ansible,并且刚刚测试了从bash启动windows进程

    根据上面的屏幕截图,可以通过
    /mnt/drive\u letter/
    访问Windows主机上的任何逻辑驱动器,这就是您可以调用vagrant的方式。 因此,您的工作流程将是:

  • 安装WSL
  • 在WSL内部安装Ansible
  • 在Windows中启用Hyper-V组件
  • 为Windows安装Vagrant
  • 创建一个管理Vagrant文件的剧本(使用Hyper-V 提供程序)并调用“vagrant.exe up”
  • 当ansible playbook运行时,它应该根据您的文件启动Hyper-V虚拟机。此设置允许您在主机和漫游计算机之间建立任何类型的网络连接,包括使用您的Ansible from WSL管理这些虚拟机,同时将剧本放在Windows heart附近,如果愿意,还可以使用Notepad++编辑它们:)


    这里有一个网站,通过一些例子和详细的步骤,可能有助于将Vagrant和Hyper-V结合起来:

    事实上,你可以使用Windows(某种程度上)。至少,Ansible不需要完整的Linux虚拟机。试着在Windows10中运行WindowsSubsystem for Linux,这样您就可以使用Ansible了

    您可以安装支持Hyper-V提供程序的Vagrant for Windows。现在,在windows上的Bash中,您可以同时使用:Linux ansible binary和windows vagrant.exe(它将启动您的常规windows控制台),这两者都可以在Bash shell中使用

    我使用Ansible这种方式非常方便,我刚刚测试了launchin