亚马逊宣布新的基于 EBS 的 AMI,我想知道是否有可能创建不基于现有 Fedora/Windows AMI 的新 AMI。文档说:
最简单的方法是从现有的公共 AMI 开始,然后根据您的要求进行修改。这适用于 Amazon EBS 支持的 AMI 和 Amazon S3 支持的 AMI,并在从现有 AMI 开始中进行了描述。
另一种方法是在独立机器上或通过 loopback 安装的空文件系统上构建全新安装。这仅适用于由 Amazon S3 支持的 AMI,并且需要从头构建操作系统安装。
听起来所有未来的 AMI 都必须基于现有的 AMI,但这样做会非常有限。我理解得对吗?或者还有其他方法可以创建不基于现有 AMI 的 AMI?我对创建 ubuntu AMI 很感兴趣。
答案1
答案2
对于 Ubuntu,你可以尝试这些说明http://alestic.com/2010/01/vmbuilder-ebs-boot-ami。
答案3
下面是我用来构建 Git/gitolite 服务器 AMI 的脚本,使用可下载的 Ubuntu 服务器文件系统作为基础:
https://github.com/alestic/alestic-git/blob/master/bin/alestic-git-build-ami
以下是有关 EC2 的 Alestic Git 服务器项目的更多信息:
http://alestic.com/alestic-git/
我在 Alestic.com 上撰写的 vmbuilder-ebs-boot-ami 文章(在 Bribles 的回答中链接)现在已经过时了。
答案4
AMI 不必基于现有的 AMI,但从 EC2 创建一个 AMI 很复杂,因为它为您提供了一台具有远程访问和硬件配置但没有控制台输入的计算机。
这里的技巧是 ISO 映像可以已启动如果包含引导扇区,则可直接从硬盘安装。此外,新操作系统的安装需要完全自动化,因为安装程序运行时您无法与控制台交互。
您将需要使用三个 EBS 磁盘,并切换所连接的磁盘:开发、安装程序和最终结果。
- 使用现有 AMI 启动 EC2 实例。
- 编辑新操作系统的 ISO 映像以进行无人值守安装(即回送安装、复制文件、编辑、mkisofs、isohybrid)。对于 Ubuntu,您需要编辑预置文件和 isolinux.cfg。安装必须写入将成为新 AMI 的新 EBS 磁盘。
- 将编辑的 ISO 映像复制到第三个 EBS 磁盘并从该磁盘启动。
我使用此方法(从 Amazon AMI Linux 开始)为 Linux Mint 18.2 创建了一个 AMI,详细描述如下这里。