Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打包机&x2B;Vagrant-从ISO创建AMI_Vagrant_Iso_Amazon Ami_Packer - Fatal编程技术网

打包机&x2B;Vagrant-从ISO创建AMI

打包机&x2B;Vagrant-从ISO创建AMI,vagrant,iso,amazon-ami,packer,Vagrant,Iso,Amazon Ami,Packer,可以从ISO创建AMI吗 我正在实现一个构建系统,它使用基本iso,修改它,安装东西,然后输出到.ovf和AMI中 .ovf有效。但是对于AMI,我所能理解的是它需要预先存在的AMI。这是正确的吗 有没有办法使用iso并生成AMI 谢谢。Vagrant包含一个名为Vagrant ami的小插件,可用于创建EC2自定义ami: $ vagrant create-ami new_image --name my-ami --desc "My AMI" 然后,您可以用自定义的AMI ID替换Vagra

可以从ISO创建AMI吗

我正在实现一个构建系统,它使用基本iso,修改它,安装东西,然后输出到.ovf和AMI中

.ovf有效。但是对于AMI,我所能理解的是它需要预先存在的AMI。这是正确的吗

有没有办法使用iso并生成AMI


谢谢。

Vagrant包含一个名为Vagrant ami的小插件,可用于创建EC2自定义ami:

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

然后,您可以用自定义的AMI ID替换Vagrant文件中的AMI ID。

当您说来自ISO时,它告诉我您希望创建一个受信任的基本VM。您希望首先在本地从头开始安装,并将其作为受信任的私有AMI导入ec2。如果你不介意使用veewee,这里有一篇使用veewee而不是packer的文章:CentOS的所有设置都完成了。您所需要做的就是克隆它并根据您的用例调整它

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

以下是要遵循的步骤:

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

2.)设置您的AWS帐户。创建“vmimport”IAM角色和策略以及X509密钥和证书对(如果您没有)。你需要这个来注册一个私有的AMI。您还将为策略引用bucket的名称

3.)使用packer的VirtualBox iso builder使用VirtualBox构建VM,并让它以ova格式输出图像

4.)将aws cli与您的aws帐户一起使用,将OVA上载到您创建的存储桶中<代码>aws s3 cp命令

5.)将OVA注册为ami。您将为此使用
aws ec2导入图像
命令。(此部分可能需要30分钟-1小时的长时间)


您可以使用以下命令跟踪进度:
aws ec2 descripe import image tasks
完成后,AMI将显示在您的私有AMI列表中。

vagrant list命令不显示create AMI。你确定它不是第三方插件吗?看起来答案可能是引用了基于的插件。使用Vagrant插件的文档如下所示。