AWS VM Import/Export导入虚拟机

前提条件:

1. https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmie_prereqs.html

2.安装aws cli

 

此处以.ova格式为例

1.导入.ova文件到s3

aws s3 cp Downloads/CentOS7.ova s3://s3-vmimport/CentOS7.ova

 

 

 

 

2.IAM用户权限设置

  IAM用于需拥有必要的s3和ec2权限,此测试使用的IAM用户拥有AdministratorAccess权限,所以未做具体配置。

  详细的权限要求可参考以下链接中“IAM用户的必要权限”一节

https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmie_prereqs.html

 

3.创建角色

VM Import/Export需要一个角色代表您执行某些操作。您必须创建名为vmimport的服务角色,并附带可允许VM Import/Export担任相关角色的信任关系策略文档,您还必须将IAM策略附加到该角色。

(1)编写trust-policy.json文件

{

   "Version": "2012-10-17",

   "Statement": [

      {

         "Effect": "Allow",

         "Principal": { "Service": "vmie.amazonaws.com" },

         "Action": "sts:AssumeRole",

         "Condition": {

            "StringEquals":{

               "sts:Externalid": "vmimport"

            }

         }

      }

   ]

}

(2)运行如下命令创建角色

aws iam create-role --role-name vmimport --assume-role-policy-document “file:///trust-policy.json”

运行结果如下

 

 

 

 

 

 

 

(3)创建权限策略文件role-policy.json,

其中,disk-image-file-bucket 为存储磁盘映像的存储桶,export-bucket 为存储所导出映像的存储桶

注意s3的arn中global用arn:aws:s3:::,中国区用arn:aws-cn:s3:::

{

   "Version":"2012-10-17",

   "Statement":[

      {

         "Effect":"Allow",

         "Action":[

            "s3:GetBucketLocation",

            "s3:GetObject",

            "s3:ListBucket"

         ],

         "Resource":[

            "arn:aws-cn:s3:::disk-image-file-bucket",

            "arn:aws-cn:s3:::disk-image-file-bucket/*"

         ]

      },

      {

         "Effect":"Allow",

         "Action":[

            "s3:GetBucketLocation",

            "s3:GetObject",

            "s3:ListBucket",

            "s3:PutObject",

            "s3:GetBucketAcl"

         ],

         "Resource":[

            "arn:aws-cn:s3:::export-bucket",

            "arn:aws-cn:s3:::export-bucket/*"

         ]

      },

      {

         "Effect":"Allow",

         "Action":[

            "ec2:ModifySnapshotAttribute",

            "ec2:CopySnapshot",

            "ec2:RegisterImage",

            "ec2:Describe*"

         ],

         "Resource":"*"

      }

   ]

}

 

(4)执行以下命令

aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file:///Users/shenlei/role-policy.json"

运行结果如下

 

 

 

 

3.导入.ova

(1)执行以下命令

aws ec2 import-image   --disk-containers Format=ova,UserBucket="{S3Bucket=s3-vmimport,S3Key=CentOS7.ova}"

运行结果如下

 

 

 

 

(2)监控导入状态

执行以下命令

aws ec2 describe-import-image-tasks --import-task-ids import-ami-0176bxxxxxxxeb8

运行结果如下:

a.coverting状态

b.updating状态

 

 

 

c.booting状态

 

 

 

d.booted状态

 

 

 

e.导入完成

 

 

 

 

 ——本文作者:赵毅鹏,沈磊

 

 

posted @ 2020-04-14 11:28  石头记事  阅读(1204)  评论(0编辑  收藏  举报