3.3.3. 使用命令行管理 AWS 上的 RHEL 虚拟机


您可以使用 Amazon Web Services (AWS)命令行界面 awscli2 实用程序,通过命令行管理 AWS 上的 Red Hat Enterprise Linux (RHEL) Elastic Cloud Compute (EC2)虚拟机。您可以导入 RHEL EC2 镜像快照,创建 Amazon Machine Image (AMI),启动并连接到 RHEL EC2 实例。

先决条件

  • 您已创建了红帽帐户。
  • 您已注册并配置了 AWS 帐户。
  • 您已为您的帐户安装了 awscli2 软件包并配置了 AWS 凭证。

流程

  1. 使用 vmimport 角色:

    $ aws iam create-role --role-name vmimport \
    --assume-role-policy-document file://<example_vmimport_trust_policy_file>
  2. 使用 vmimport 角色策略文件嵌入内联策略文档:

    $ aws iam put-role-policy --role-name vmimport \
    --policy-name vmimport-access \
    --policy-document file://<example_vmimport_role_policy_file>

    另外,您可以通过创建一个 IAM 角色(通常称为 vmimport)来授予 VM Import/Export 权限,并带有 vmie.amazonaws.com 的信任策略,并从 AWS 指南附加 JSON 策略。

  3. 将 RHEL 镜像导入为快照:

    $ aws ec2 import-snapshot --disk-container file://<example_containers_json_file>
  4. 确认快照导入成功完成并状态为 completed

    $ aws ec2 describe-import-snapshot-tasks --import-task-ids <example_import_task_id>

    您可以从 Amazon S3 将 RHEL 虚拟机镜像作为快照导入到 Amazon EC2。准备 <example_containers_json_file> 指向 S3 存储桶和对象键的文件,然后启动导入并监控命令返回的任务 ID。

  5. 从完成的快照中注册 RHEL AMI:

    $ aws ec2 register-image \
    --name <example_rhel_custom_ami_name> \
    --architecture x86_64 \
    --virtualization-type hvm \
    --root-device-name /dev/sda1 \
    --block-device-mappings "[{\"DeviceName\": \"/dev/sda1\",\"Ebs\": {\"SnapshotId\": \"<example_snapshot_id>\"}}]" \
    --ena-support
  6. 为 RHEL EC2 实例创建密钥对:

    $ aws ec2 create-key-pair --key-name <example_key_pair_name> \
    --query 'KeyMaterial' --output text > <example_key_file>.pem

    这个密钥对是每个区域,并保存一个 .pem 文件。

  7. 限制密钥文件的权限:

    $ chmod 400 <example_key>.pem
  8. 从注册的 AMI 启动 RHEL EC2 实例:

    $ aws ec2 run-instances \
    --image-id <example_registered_ami_id> \
    --instance-type <example_instance_type> \
    --key-name <example_key_pair_name>
  9. 连接到默认用户为 ec2-user 的 RHEL EC2 实例:

    $ ssh -i <example_key>.pem ec2-user@<instance_public_dns_or_ip>

验证

  • 验证快照导入是否已成功完成,状态为 completed

    $ aws ec2 describe-import-snapshot-tasks --import-task-ids <example_import_task_id>
  • 验证 AMI 是否处于 available 状态:

    $ aws ec2 describe-images --image-ids <example_registered_ami_id>
  • 验证实例是否在 running 状态运行:

    $ aws ec2 describe-instances --instance-ids <example_instance_id>

    当实例完成时,State.Name正在运行

  • 验证 SSH 连接是否正常工作:

    $ ssh -i <example_key>.pem ec2-user@<instance_public_dns_or_ip> 'echo connected'
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部