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

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

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

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

答案1

我喜欢mperrin 的以 Vagrant 为中心的回答,但正如您可能从那里的评论中看到的那样,我个人的意见是“保持简单”,我建议按照您的配置简单地导出 VirtualBox OVA,然后将其传递给您的学生。

话虽如此,你还是会问这个问题:

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

转向 DevOps

我不太清楚你在教什么、做什么,或者你希望你的学生从这整个练习中得到什么,但你表达的许多担忧都涉及到DevOps(开发和运营)您可能需要考虑将这个概念融入到您的教学中。

现在,我认为不需要传达 DevOps 的整个概念,但在我看来,您创建一个稳定的 VirtualBox OVA,然后将其传递给学生并要求他们在家里/学校的机器上使用,这肯定会引出一些问题:应该如何处理不同的硬件/系统设置以及如何适应。

所以我的建议是强烈推荐确保学生使用您设置的 VirtualBox OVA,但同时也要允许学生自行安装工具。我的直觉告诉我,95% 或更多的学生会乐于并轻松地使用 VirtualBox OVA 方法,但您不能指望它 100% 完美。

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

灵活使用工具

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

偶尔,开发人员会说错误是由以下原因引起的:例如,我在 MAMP 上测试的代码与 Linux LAMP 设置上的代码“不一样”。我可以 100% 自信地说,我始终证明问题不是出在基础操作系统上,而是出在 PHP 编码本身上。

所以,所有这些废话基本上都是为了传达以下信息:向学生解释 VirtualBox 设置的使用方法时要灵活,不要指望直接教他们一个操作系统就能解决所有问题。它可能会解决 95% 的问题,但剩下的 5% 总是需要以某种方式解决。因此,将 VirtualBox 设置(或许还有 Vagrant 脚本)视为一种工具,它可以作为武器库的一部分,让一些人的生活更轻松,但不一定是解决所有问题的最终解决方案。

答案2

你应该看看流浪汉

Vagrant 支持 VirtualBox 并允许您:

创建和配置轻量级、可重复和可移植的开发环境。

分享一个或多个文本文件比导出大量的 VirtualBox 镜像要好得多。特别是当你想管理更新时。

一旦安装了 VirtualBox 和 Vagrant,一个简单的:

vagrant up

将要:

单个 Vagrantfile 还可以处理 Windows 或 Mac 主机的特殊性。

答案3

这根本没关系 - virtualbox(以及所有其他虚拟化软件)模拟自己的视频适配器(如果我没记错的话,cirrus logic)。虽然传统的 virtualbox 文件被拆分成不同的文件用于设置和存储,但您可以按照建议将其导出到 ovf 文件中。如果您的学生可以安装 virtualbox 或 vmware,这应该很简单。如果不能,他们需要学习。

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

我有几个建议 - 将虚拟机保持在 32 位(这样您就不必担心主机上的 VT-X 支持)、创建在两大操作系统上安装 VirtualBox 的指南(Windows 很简单,Linux 需要一些额外的步骤)以及导入 OVF 文件。这也意味着如果学生想使用 vmware player 或类似软件,他们也可以使用。除非您需要运行可从外部访问的服务器,否则请使用 NAT 进行联网。

如果表现不是一个问题,你可能只需要将所有内容打包成一个 QEMU 实例(它们可以设置为独立运行)和合适的启动脚本。我认为这是最后的采取。

我注意到许多大学确实提供了带有合适工具的虚拟机(IIRC 斯坦福 CS 50 d这是 edx 提供的免费课程,因此值得看看他们是如何做到的。

答案4

另一个值得考虑的选择。如果你真的不担心它们有 GUI,你可以使用类似终端网

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

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

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

相关内容