5

是否可以从 ISO 创建 AMI?

我正在实现一个构建系统,它使用基础 iso,修改它,安装东西,然后在 .ovf 和 A​​MI 中输出它。

.ovf 有效。但是对于 AMI,我能想到的只是它需要预先存在的 AMI。这个对吗?

有什么方法可以使用 iso 并生成 AMI?

谢谢。

4

2 回答 2

4

当您从 ISO 中说您正在寻找创建受信任的基础虚拟机时。您想先在本地从头开始安装,然后将其作为受信任的私有 AMI 导入 ec2。如果您不介意使用 veewee,这里有一篇很棒的帖子,使用 veewee 而不是 packer:veewee It's all setup for CentOS。您需要做的就是克隆它并针对您的用例进行调整。

但是由于您正在寻找像我一样的打包程序,那么您需要的是打包程序中的 virtualbox-iso 构建器和一些 aws-cli 命令来上传和从 OVA 中创建 AMI。不幸的是,Packer 没有为此提供后处理器。然后,您可以使用 vagrant 为基于 ec2 的开发引用新的 AMI,并使用 vagrant-aws 插件从您信任的基础 ami 中创建新的 ami。

以下是要遵循的步骤:

1.) 为图像导入创建一个 S3 存储桶。

2.) 设置您的 AWS 账户。创建“vmimport”IAM 角色和策略以及 X509 密钥和证书对以防万一。您将需要它来注册私有 AMI。您还将为策略引用存储桶的名称。

3.) 使用 Packer 的 virtualbox-iso builder 用 VirtualBox 构建一个 VM,并让它输出一个 ova 格式的图像。

4.) 使用 aws-cli 和您的 aws 帐户将 OVA 上传到您创建的存储桶。 aws s3 cp命令。

5.) 将 OVA 注册为 ami。您将为此使用该aws ec2 import-image命令。(这部分可能需要很长时间 30 分钟 - 1 小时)。

您可以通过以下方式跟踪进度:aws ec2 describe-import-image-tasks 完成后,AMI 将出现在您的私有 AMI 列表中。

于 2015-11-20T19:41:51.337 回答
2

Vagrant 包含一个有用的小插件,名为 vagrant-ami,可让您创建 EC2 自定义 AMI:

$ vagrant create-ami new_image --name my-ami --desc "My AMI"

然后,您可以将 Vagrantfile 中的 AMI ID 替换为您的自定义 ID。

于 2014-10-13T17:24:38.477 回答