https://docs.aws.amazon.com/zh_cn/vm-import/latest/userguide/vmie_prereqs.html
准备工作
- 迁移前备份本地 Windows VMware 虚拟机机数据
- 确认 Windows 虚机防火墙允许 RDP 访问
- 创建Administrator用户密码(迁移后仍使用原系统用户密码登录)
- 卸载 VMware Tool 工具
- 断开 CD-ROM 连接
- 建议清除网卡静态 IP 设置,改为 DHCP 方式
- 将 VM 关机,在 vcenter 上将 VM 导出,推荐导出为 OVA 格式
VM Import 需要 Amazon S3 存储桶来将您的磁盘映像存储在要导入 VM 的区域。可以创建新
存储桶或使用现有的存储桶。建议提前创建一个存储桶
设置 VM Import 服务角色
在您的计算机上创建一个名为 trust-policy.json
的文件。将以下策略添加到该文件中:vi 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 Import/Export 提供对该角色的访问权。确保您已指定在上一步中创建的 trust-policy.json
文件的位置的完整路径,并包含 file://
前缀,如下例所示:
aws iam create-role --role-name vmimport --assume-role-policy-document "file://C:\import\trust-policy.json"
创建名为 role-policy.json 的策略文件,使用 put-role-policy 命令将策略挂载到之前创 建的角色。编辑内容如下:vi role-policy.json (BucketName为OVA文件所在存储桶名称)
{ "Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource":[
"arn:aws:s3:::BucketName",
"arn:aws:s3:::BucketName/*"
]
},
{
"Effect":"Allow",
"Action":[
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource":"*"
}
]
}
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\import\role-policy.json"
转换并导入AMI,创建内容模板 vi container.json
[
{
"Description": "description",
"Format": "ova",
"UserBucket": {
"S3Bucket": "BucketName",
"S3Key": "Windows_Server_2012_R2_64.ova"
}
}
]
aws ec2 import-image --description " Windows_2012_R2_64" --license-type BYOL --platform Windows --disk-containers "file://C:\containers.json"
查询任务进度
aws ec2 describe-import-image-tasks
aws ec2 describe-import-image-tasks --import-task-ids import-ami-xxxxxxxxxxxxxx
状态说明:
- • active — 正在运行导入任务。
- • deleting — 正在取消导入任务。
- • deleted — 导入任务已取消。
- • updating — 导入状态正在更新。
- • validating — 正在验证导入的映像。
- • validated — 已验证导入的映像。
- • converting — 正在将导入的映像转换成 AMI。
- • completed — 导入任务已完成,并且 AMI已准备就绪可使用。