如何在 AWS EC2 内部运行 OVA + OVF 设备?

如何在 AWS EC2 内部运行 OVA + OVF 设备?

GitHub 企业版作为开放虚拟化设备和文件发货;它旨在被放入现有的虚拟化设置中,如 VMWare、VirtualBox 等。

我想在 AWS EC2 云中运行它(Github 目前不提供 AMI)。

我阅读了相关主题,发现 AWS EC2 的 VMImport 工具目前似乎仅支持 Windows VM。

我想知道是否有将 OVA/OVF 设备导出到 EC2 实例的分步指南,以便我可以创建它的 AMI 并从那里开始?我尝试遵循本指南但老实说,我不知道如何执行步骤 1-3;GHE 仅向我提供了对实例的有限 ssh 访问权限,而且我不确定要查找什么或如何查找。GHE 似乎在 Ubuntu 基础发行版上提供。

(我仍然是初级水平的 Linux 系统管理员;我有 Windows 开发背景,但我有能力快速学习。)

答案1

看起来您可以使用 ec2-import-image 命令导入 OVA/OVF:

来自亚马逊的文档

相关文本:

您可以导入适用于 Microsoft Windows Server 2003 R2 和 2008 R1 和 R2 的 VMware ESX VMDK 映像、Citrix Xen VHD 映像和 Microsoft Hyper-V VHD 映像。您可以将之前导入的 EC2 实例导出到 VMware ESX VMDK,VMware ESX OVA、Microsoft Hyper-V VHD 或 Citrix Xen VHD 文件格式。我们计划在未来支持导入其他操作系统、版本和虚拟化基础设施产品。

只需检查以确保您运行的是最新版本的 AWS 工具包,就应该没问题。您需要为 -f 选择“原始”格式,并确保其他标志正确无误。我没有使用过 github 企业 VM,因此无法详细说明,但只要稍微研究一下,就应该没问题。

ec2-import-instance 磁盘映像文件名 -t 实例类型 -f 格式 -a 架构系统 -b S3 存储桶名称 -o 所有者 -w 密钥

ec2-import-instance 命令参考

答案2

我认为 OVA 只是一个 tar 文件。您应该能够使用 tar 提取所包含的文件。然后您可以获取 vmdk 映像文件。您应该能够使用 qemu-img 将其转换为原始映像。

之后的技巧是将原始映像挂载到环回设备中。如果映像已分区,则可能需要使用 kpartx 来完成此操作。您需要确保映像上的内核支持 xen 网络设备。我相信内核配置选项是 CONFIG_XEN_NETDEV_FRONTEND。如果 GitHub 映像基于 Ubuntu,您会在 /boot/config-SOME_KERNEL_VERSION 找到内核配置。如果幸运的话,内核配置将包含该选项。如果运气不好,则需要编译自定义内核。

此外,您还需要确保映像具有 pvgrub 启动映像所需的文件。这意味着您需要在 /boot/grub/menu.lst 处有一个与 grub1 兼容的配置。

完成所有这些操作后,您必须使用正确的 AKI 为 pvgrub 上传 AMI。请参阅此 AWS 文档了解更多信息。

总而言之,如果内核尚未构建支持 xen 网络设备的方式,这将非常困难。祝你好运。

相关内容