想要分发Linux虚拟机供学生使用


25

我让学生运行Mac和Windows。每个学期,总会有很多关于如何安装工具“X”的问题。我想创建一个Linux虚拟机(我尝试过VirtualBox)并分发图像。这样,所有工具都已预先安装,每个人都在使用Linux。

问题是,鉴于人们有不同的图形硬件,这是如何工作的?还是有用吗?如果确实如此,我该如何分发它?他们是否必须安装VirtualBox,然后加载我给他们的一些文件,或者我可以轻松创建一个安装程序吗?


13
Virtualbox允许您导出设备。该文件可以在任何虚拟化软件(VMWare,Virtualbox等)中导入,并将自身配置为本地硬件。这似乎是你要求的。单个安装程序是不可能的,因为您无法在WIndows(.exe)和Mac(.app)上运行相同的程序。
GiantTree 2015年

我是否必须以不同方式再次安装,还是可以将虚拟机保存为设备?
多夫

您可以将任何虚拟机保存为Virtualbox中的设备。只需:文件 - > 导出设备Ctrl + E
GiantTree 2015年

有些人建议使用Vagrant作为解决方案,因为在下载设备文件期间文件大小可能是一个问题。说实话,如果您在创建虚拟高清时安装了简约环境并使用精简配置,那么最终可能会有一个非常可用的100MB或更少的文件。只是想在那里添加它,因为没有其他人解决它。
Geruta 2015年

1
@gronostaj:听起来有点像这个可怜的VM被卡在矩阵中!:O
Zaibis 2015年

Answers:


24

我喜欢mperrin以流浪者为中心的答案,但正如你可能从那里的评论中看到的那样,我的个人观点是“保持简单”,我建议你在配置完成后简单导出VirtualBox OVA并将其传递给学生。

那就是说,你问这个:

问题是,鉴于人们有不同的图形硬件,这是如何工作的?还是有用吗?如果确实如此,我该如何分发它?他们是否必须安装VirtualBox,然后加载我给他们的一些文件,或者我可以轻松创建一个安装程序吗?

转向DevOps

我不太确定你在教学或做什么,或者你希望你的学生从这整个练习中得到什么,但是很多关注你正在转向DevOps(开发和运营)的领域,你可能想要考虑将这个概念混合到你的教导中。

现在我不认为DevOps的整个概念需要传达,但在我看来,你创建一个稳定的VirtualBox OVA然后传递给学生并要求他们在他们的家庭/学校机器上使用肯定会打开一扇门关于如何处理不同的硬件/系统设置以及如何适应的问题。

因此,我建议您强烈建议学生使用您设置的VirtualBox OVA,同时也允许学生自行安装工具。我的直觉告诉我95%或更多的学生会愉快而轻松地使用VirtualBox OVA方法,但你不能指望它是100%完美的。

也许最后你应该对课程工具的使用有一些基本的要求,并且在实施时要灵活。

关于如何使用工具要灵活

例如,我做了很多PHP开发,并进行与PHP开发相关的系统管理/ DevOps。由于我在Mac上,我更喜欢使用MAMP进行本地开发。但我与使用Linux或Windows进行开发的开发人员合作。哎呀,有些人喜欢使用Vagrant和VirtualBox来满足他们的LAMP开发需求。我的态度是我不关心他们的基本操作系统设置是什么。只要他们的PHP版本与我的客户使用的版本一致,我就可以了。

有时候开发人员会说错误是因为 - 例如 - 我在MAMP上测试的代码与Linux LAMP设置上的代码“不一样”。我100%放心地说,我一直都证明问题不是基本操作系统,而是PHP编码本身。

所以这一切基本上都是为了基本上传达以下内容:只是灵活地向学生解释VirtualBox设置的使用,并且不要期望用勺子操作操作系统来简单地解决所有问题。它可能会将95%的问题排除在公园之外,但剩余的5%将始终以某种方式解决。所以看一下VirtualBox设置 - 也许是一个Vagrant脚本 - 作为一种工具,可以在一个武器库中使用,使一些人的生活更轻松,但不一定是所有问题的最终解决方案。


3
教C ++,java,数据结构,这是试图摆脱我不感兴趣的sysadmin / devops!
Dov 2015年

1
@Dov嗯,如果是这种情况,导出VirtualBox OVA并将其分发给您班级中的人员是最好的方法。
杰克古尔德2015年

18

你应该看看Vagrant

Vagrant支持VirtualBox,允许您:

创建和配置轻量级,可重现且可移植的开发环境。

与VirtualBox图像的大量导出相比,共享单个或一堆文本文件要容易得多。特别是如果您想管理更新。

一旦VirtualBox和Vagrant安装简单:

vagrant up

将:

单个Vagrantfile还可以处理Windows或Mac主机的特定功能。


7
虽然Vagrant并不是一个坏主意,但只需导出一个VirtualBox设备,指导学生安装VirtualBox,然后让他们将该设备导入VirtualBox,只需几步即可完成工作,而Vagrant无需从头开始重建机器或冒着Vagrant的风险特质突然出现在混合中。
杰克古尔德2015年

1
你是对的,出口肯定是最直接和最简单的方法。但根据需要,我认为必须在这里提到流浪汉。管理大型ova文件的上传/下载可能会有问题,特别是如果需要在每个项目的基础上进行更新。关于这两种方法的更多比较可以在这个非常好的线程中找到superuser.com/questions/584100/...
mperrin 2015年

关于其他帖子的相当不错的笔记。我的感觉是:如果您觉得需要Vagrant通过脚本部署超过2台服务器,那就去吧。但是对于大多数桌面用户和简单的开发人员来说,只需通过VirtualBox“滚动自己”也可以。
杰克古尔德

1
在您的情况下,流浪者相对于导出的另一个优势是学生能够通过检查配置脚本来学习“如何”安装和配置图像。比通过图像的历史容易得多。
mperrin 2015年

8

这根本不重要 - virtualbox(以及其他所有虚拟化软件)都模拟自己的视频适配器(IIRC卷云逻辑)。虽然传统的virtualbox文件分为不同的文件进行设置和存储,但您可以按照建议将其导出到ovf文件中。如果您的学生可以安装virtualbox或vmware,那应该是微不足道的。如果没有,他们需要学习。

安装virtualbox相当简单(假设您有硬件支持)。

我建议的一些事情 - 将VM保持在32位(因此您不必担心主机上的VT-X支持),创建一个在大型2操作系统上安装virtualbox的方法(Windows很简单, linux需要一些额外的步骤),并导入OVF文件。这也意味着如果学生想要使用vmware播放器等。除非您需要运行可从外部访问的服务器,否则请使用NAT进行联网。

如果性能不是问题,您可能只需将所有内容捆绑到QEMU实例(它们可以设置为自运行)和合适的启动脚本。我认为这是最后的手段。

我注意到很多大学确实为虚拟机提供了合适的工具(IIRC stanfords CS 50,这是edx免费提供的课程),所以值得看看他们是如何做到这一点的。


3

作为大多数虚拟化技术的替代方案,Linux(例如Ubuntu)可以安装在拇指驱动器上。几乎每台计算机都会启动一个拇指驱动器,大多数现代安装人员会在启动时检测到显卡/网卡。如果您安装了32位Ubuntu,它几乎可以在人们可能拥有的所有硬件上运行。

它们易于分发,不需要任何其他安装的软件。它们也可以轻松地从一台机器移动到另一台机器 - 从学校的计算机上拔下,放在口袋里。当你回到家时,只需将其插入即可。

他们可以相当便宜(我意识到学校的预算非常有限!); 根据将在机器上运行的应用程序,4gb应该足够,也许8GB。


毕业学校的每个人都有一台笔记本电脑。我认为不需要usb。
Dov 2015年

1

另一个要考虑的选择。如果你真的不担心他们有GUI,你可以使用像terminal.com这样的东西。

您可以创建自己的公共快照,并将其保留给学生。它类似于VirtualBox的方法,但不是自己的机器上安装的虚拟机是在别人的机器上。

然后,他们只需要一个足够现代的网络浏览器。如果他们感兴趣,他们可以设置它们,以便他们可以使用SSH / Putty /等。

根据他们的数据,如果学生使用的是微型实例(256 MB RAM,几GB的磁盘空间),如果他们在没有使用虚拟机时暂停虚拟机,则需要花费9美元/年才能运行8小时/天。我不能代表terminal.com发言,但我怀疑如果你联系他们,他们可能会为你提供某种教育折扣。


类似的服务是[SDF.org](sdf.org/?join)为教育工作者提供的免费公共shell访问。教导常见问题。不是VM,但它仍然很好。
HSchmale 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.