前提:
AWS中创建EC2 Linux时,大多是使用已经默认提供的镜像,当你需要是用自己的镜像文件创建对应的系统时,就需要导入自己的系统包,这时候你就用得到本篇文章了,实际操作过程请参考AWS官方文档为主,本文为辅。

使用AWS的 Import/Export 工具:
https://aws.amazon.com/cn/ec2/vm-import/

VM Import/Export 提供多种可将你的虚拟机导入 Amazon EC2 的方法

第一种方法是使用 AWS CLI 工具导入 VM 映像。启动时,只需:

  • 下载并安装 AWS 命令行接口。
  • 确认你的 VM 满足 VM Import 前提条件,准备好导入并从当前环境作为 OVA 文件(或 VMDK、VHD 或 RAW)导出。
  • 使用 AWS CLI 上传 VM 映像到 S3。多部分上传将提升性能。作为替代方法,您还可以使用 AWS Import 服务发送 VM 映像到 AWS。
  • 一旦上传 VM 映像,使用 ec2 import-image 命令导入您的 VM。作为本命令的一部分,您可以为导入的映像指定许可模式和其他参数。
  • 使用 ec2 describe-import-image-tasks 命令监控导入进度。
  • 一旦导入任务完成,您可以使用 ec2 run-instances 命令从导入流程期间生成的 AMI 创建 Amazon EC2 实例。

所需操作步骤:

AWS官方文档:使用 VM Import/Export 将 VM 作为映像导入:
https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmimport-image-import.html

1、OVA上传到S3 (此处省略,手动上传,很简单)。
2、创建命名为 vmimport 的 IAM 角色(见下文)。
【具体参照AWS官网:https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmie_prereqs.html#vmimport-role 】
3、执行AWS CLI导入命令(见下文)。

详细过程:
1、上传OVA到S3 (省略)
2、创建IAM角色 vmimport

若要创建服务角色,步骤如下:
2.1、创建一个名为 trust-policy.json 的文件

{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": { "Service": "vmie.amazonaws.com" },"Action": "sts:AssumeRole","Condition": {"StringEquals":{"sts:Externalid": "vmimport"}}}]
}

使用create-role命令以创建一个名为的角色vmimport并授予 VM 导入/导出访问权限。确保您已指定在上一步中创建的 trust-policy.json 文件的位置的完整路径,并包含 file:// 前缀,如下例所示:

aws iam create-role --role-name vmimport --assume-role-policy-document "file://C:\import\trust-policy.json"

2.2、创建一个名为的文件role-policy.json使用以下策略,其中 disk-image-file-bucket 是磁盘映像的存储桶,export-bucket 是导出映像的存储桶:

{"Version":"2012-10-17","Statement":[{"Effect": "Allow","Action": ["s3:GetBucketLocation","s3:GetObject","s3:ListBucket" ],"Resource": ["arn:aws:s3:::vw你的桶的名字","arn:aws:s3:::vw你的桶的名字/*"]},{"Effect": "Allow","Action": ["s3:GetBucketLocation","s3:GetObject","s3:ListBucket","s3:PutObject","s3:GetBucketAcl"],"Resource": ["arn:aws:s3:::vw你的桶的名字","arn:aws:s3:::vw你的桶的名字/*"]},{"Effect": "Allow","Action": ["ec2:ModifySnapshotAttribute","ec2:CopySnapshot","ec2:RegisterImage","ec2:Describe*"],"Resource": "*"}]
}

返回内容如下,且在AWS的角色里面可以看到已经创建vmimport

2.3、使用下面的 put-role-policy 命令将策略挂载到之前创建的角色。
请务必指定 role-policy.json 文件位置的完整路径。

aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\import\role-policy.json"

然后可看到vmimport已经被添加了权限,这点很重要,添加不成功,执行命令会提示无权访问S3:

3、CLI导入VM:
在你本地创建文件containers.json,如下:
(https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmimport-image-import.html)

[{"Description": "My Server OVA","Format": "ova","UserBucket": {"S3Bucket": "v你的桶的名字","S3Key": "v你的ova包的名字.ova"}
}]

执行命令,导入:

aws ec2 import-image --description "My server VM" --disk-containers "file://C:\import\containers.json"

查看状态:

aws ec2 describe-import-image-tasks --import-task-ids import-ami-1234567890abcdef0

状态信息值如下:active— 正在运行导入任务。

  • deleting— 正在取消导入任务。
  • deleted— 导入任务已取消。
  • updating— 导入状态正在更新。
  • validating— 正在验证导入的映像。
  • validated— 已验证导入的映像。
  • converting— 正在将导入的映像转换成 AMI。
  • completed— 导入任务已完成,并且 AMI 已准备就绪,随时可以使用。

完成之后会在AWS主页,AMI下可看到我们刚刚上传的映像:

再然后,就可以使用刚刚导入的映像创建实例了。

细节就是给角色vmimport授权时注意检查其指定的资源路径附上以上过程中使用的Json文件。

附:
监视导入映像任务 命令

aws ec2 describe-import-image-tasks --import-task-ids import-ami-05aff01e3f70a3ede

取消导入映像任务 命令

aws ec2 cancel-import-task --import-task-id import-ami-05aff01e3f70a3ede

创建vimport角色

aws iam create-role --role-name vmimport --assume-role-policy-document "file://D:\Users\User\Desktop\AWS\trust-policy.json"

策略挂载到角色vimport

aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://D:\Users\User\Desktop\AWS\role-policy.json"

【全篇完】

AWS 使用 VM Import/Export 将 VM 作为映像导入相关推荐

  1. javascript中的esm,import, export

    1.esm是什么 esm 是将 javascript 程序拆分成多个单独模块,并能按需导入的标准.和webpack,babel不同的是,esm 是 javascript 的标准功能,在浏览器端和 no ...

  2. 1.3 Quick Start中 Step 7: Use Kafka Connect to import/export data官网剖析(博主推荐)

    不多说,直接上干货! 一切来源于官网 http://kafka.apache.org/documentation/ Step 7: Use Kafka Connect to import/export ...

  3. 新手关于import/export的理解

    前言 从事前端工作已经两年多了,技术上从最开始的jq,到后来的angular,然后react,vue,都一一学习过来并且应用到了实践中.自从有了es6,node,有了脚手架,感觉写代码体验如飞.直到有 ...

  4. import export php,import与export在node.js中的使用方法

    import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码.(关于node.js模块,可参考其他node.js模 ...

  5. AMD、CMD、CommonJS、ES6(import/export)

    AMD.CMD.CommonJS.ES6(import/export) AMD.CMD.CommonJS是ES5模块化解决方案 AMD -- 异步模块 Asynchronous Module Defi ...

  6. isolatedModules‘ because it is considered a global script file. Add an import, export, or an empty

    本人在项目中单独运行ts文件时候,遇到报错:"TS1208: 'greeter.ts' cannot be compiled under '–isolatedModules' because ...

  7. IMPORT/EXPORT与SET PARAMETER/GET PARAMETER简单使用

    SAP 传递参数有两种方式 传递结构/内表/变量的区别就是接收的变量类型要和传递的变量类型一直就可以了 1.IMPORT/EXPORT *ABAP内存传递*同个会话窗口使用 EXPORT LIKP_V ...

  8. vue的路由与es6的import, export

    vue主要用来实现前端模块化编程, 它的最终代码是一些序列化的js,简单的index.html访问入口,和一些image, vue的js使用es6来模块化设计, 为什么要这么做呢,我想主要是为了前端与 ...

  9. import,export的支持[nodejs]

    背景 最近重读阮老师的<ECMAScript 6 入门>,其中 module相关章节,使用import 时报错,测试环境node版本v8.10.0,使用如下代码如下: cat export ...

最新文章

  1. 开发者:Serverless 从懵比到实战
  2. java新特性对数组的支持
  3. 聊聊wiki和中华维客
  4. three.js 几何体-组合网格_ThreeJS 粒子系统实现雪花飘落动画
  5. python模拟密码有效性检测功能_检查密码有效性(Django/Python)
  6. 推荐系统顶会RecSys’20亮点赏析
  7. 高可用 kubernetes 集群部署实践
  8. mysql 查看表格scott_mysql查询学习第一天,针对scott
  9. Spring Boot 构建RESTful Web服务
  10. TCP超时与重传机制
  11. 简单的redis使用watch完成秒杀抢购功能
  12. linux 中断程序设计,linux – CPU0被eth1中断淹没
  13. iOS——常用的手势总结
  14. VC 整人程序 修改分区表
  15. 安装配置管理 之 NVIDIA nForce Linux Drivers 集成声网卡和声卡的安装说明
  16. 智能防盗报警系统前端报警设备的选择
  17. oracle comment语法,oracle 之 COMMENT
  18. Domain Adaption3
  19. 1001: 植树问题 ZZULIOJ
  20. OpenCV中背景建模方法mog2——Adaptive GMM算法小结

热门文章

  1. Windows游戏编程:窗口
  2. 【Python零基础入门篇 · 3】:掌握数值类型、进制的转换
  3. 【rust】wsl2和云主机: ubutnu22.04 尝试编译 rustdesk-server
  4. 模仿天猫商城的J2EE商城网站项目后端——servlet+filter配合详细分析
  5. 对一个即将上线的网站,如何做一个较完整的Web应用/网站测试?
  6. VC++——一档多视
  7. React Native调用Android原生代码实现车牌识别功能【附效果图附源码】
  8. 2021年中国装载机行业发展现状分析,行业集中度不断提升「图」
  9. FSSAI的完整形式是什么?
  10. 正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 12741(unattended-upgr)持有