千家信息网

如何在AWS平台导入自行创建的操作系统模板并创建EC2实例

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,如何在AWS平台导入自行创建的操作系统模板并创建EC2实例AWS平台提供的AMI,尤其是国内AMI数量甚少,社区非官方提供的各类AMI我们使用起来又充满忧虑所以,自行安装系统导入AWS平台成为一个较好
千家信息网最后更新 2024年09月22日如何在AWS平台导入自行创建的操作系统模板并创建EC2实例

如何在AWS平台导入自行创建的操作系统模板并创建EC2实例


AWS平台提供的AMI,尤其是国内AMI数量甚少,社区非官方提供的各类AMI我们使用起来又充满忧虑

所以,自行安装系统导入AWS平台成为一个较好的选择


注意:





基本步骤

  1. 本地Vcenter/ESXI5.X 中创建虚拟机,根据需要安装各类环境和软件

    准备好的虚拟机要求见:http://docs.amazonaws.cn/vm-import/latest/userguide/prepare-vm-p_w_picpath.html

  2. 使用Vcenter的服务器模板导出功能导出一份ova类型的模板,size1-5G,视系统安装软件多少不同

    如何导出参考 http://docs.amazonaws.cn/vm-import/latest/userguide/export-vm-p_w_picpath.html

  3. 将OVA文件导入到Amazon S3 存储桶,存储桶要对步骤4的vmimport授权,至少是列出和只读,授权过程如4.3

  4. 创建服务角色

    4.1利用下策略创建名为 trust-policy.json 的文件

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

您可将文件保存在计算机的任何位置。请记下文件的位置,因为在下一步中您需要指定该文件。

4.2 使用 create-role 命令创建名为 vmimport 的角色,并向 VM Import/Export 提供对该角色的访问权。请务必指定 trust-policy.json 文件位置的完整路径。

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

4.3 创建名为 role-policy.json 的文件并编写下面的策略,其中,disk-p_w_picpath-file-bucket 为存储磁盘映像的存储桶:

{   "Version": "2012-10-17",   "Statement": [      {         "Effect": "Allow",         "Action": [            "s3:ListBucket",            "s3:GetBucketLocation"         ],         "Resource": [            "arn:aws-cn:s3:::"         ]      },      {         "Effect": "Allow",         "Action": [            "s3:GetObject"         ],         "Resource": [            "arn:aws-cn:s3:::/*"         ]      },      {         "Effect": "Allow",         "Action":[            "ec2:ModifySnapshotAttribute",            "ec2:CopySnapshot",            "ec2:RegisterImage",            "ec2:Describe*"         ],         "Resource": "*"      }   ]}

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

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


5 导入 OVA

将您的 VM 映像文件上传到 Amazon S3 后,可以使用 AWS CLI 导入该映像。这些工具接受 URL(公共 Amazon S3 文件,适用于私有 Amazon S3 文件的已签名的 GET URL)或 Amazon S3 存储桶和磁盘文件的路径。

aws ec2 import-p_w_picpath --description "Windows 2008 OVA" --disk-containers file://containers.json

下面是一个 containers.json 示例文件。

[  {    "Description": "Windows 2008 OVA",    "Format": "ova",    "UserBucket": {        "S3Bucket": "my-import-bucket",        "S3Key": "vms/my-windows-2008-vm.ova"    }}]


如果是导入多个磁盘的

Copy[  {    "Description": "First disk",    "Format": "vmdk",    "UserBucket": {        "S3Bucket": "my-import-bucket",        "S3Key": "disks/my-windows-2008-vm-disk1.vmdk"    }  },            {    "Description": "Second disk",    "Format": "vmdk",    "UserBucket": {        "S3Bucket": "my-import-bucket",        "S3Key": "disks/my-windows-2008-vm-disk2.vmdk"    }  }]

检查导入任务的状态

使用 describe-import-p_w_picpath-tasks 命令返回导入任务的状态。

包括的状态值如下:

  • active - 正在运行导入任务。

  • deleting - 正在取消导入任务。

  • deleted - 导入任务已取消。

  • validating - 正在验证导入的映像。

  • converting - 正在将导入的映像转换成 AMI。

  • completed - 导入任务已完成,并且 AMI 已准备就绪,随时可以使用。

aws ec2 describe-import-p_w_picpath-tasks --import-task-ids import-ami-fgxn195v

(可选)取消导入任务

使用 cancel-import-task 命令取消正在运行的导入任务。

aws ec2 cancel-import-task --import-task-id import-ami-fg4z7c9h

后续步骤

现在,您已拥有 AMI,您可以将其作为实例启动,或将其复制到其他的区域。有关更多信息,请参阅 Amazon EC2 文档中的以下主题。


0