

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在亚马逊 EC2 之外使用亚马逊 Linux 2
亚马逊 EC2 之外的 AL2

 AL2 容器镜像可以在兼容的容器运行时环境中运行。

 除了直接在 Amazon EC2 上运行之外，AL2 也可以作为虚拟客户机运行。

**注意**  
 AL2 图像的配置不同于 AL2023。  
 迁移到时 AL2023，请务必查看在亚马逊 [EC2 之外使用亚马逊 Linux 2023](https://docs.amazonaws.cn/linux/al2023/ug/outside-ec2.html)，并调整您的配置以使其与之兼容 AL2023。

# 在本地 AL2 作为虚拟机运行
AL2 在本地运行

使用 AL2 虚拟机 (VM) 映像进行本地开发和测试。我们为每个支持的 AL2 虚拟化平台提供不同的虚拟机映像。您可以在 [Amazon Linux 2 虚拟机映像](https://cdn.amazonlinux.com/os-images/latest/)页面查看支持的平台列表。

**Topics**
+ [

## 步骤 1：准备 `seed.iso` 启动映像
](#amazon-linux-2-virtual-machine-prepare)
+ [

## 步骤 2：下载 AL2 虚拟机镜像
](#amazon-linux-2-virtual-machine-download)
+ [

## 步骤 3：启动并连接到新 VM
](#amazon-linux-2-virtual-machine-boot)

## 步骤 1：准备 `seed.iso` 启动映像


`seed.iso` 启动映像包含启动新虚拟机所需的初始配置信息，如网络配置、主机名和用户数据。

**注意**  
`seed.iso` 启动映像仅包括启动 VM 所需的配置信息。它不包括 AL2 操作系统文件。

要生成 `seed.iso` 启动映像，需要两个配置文件：
+ `meta-data` – 此文件包括 VM 的主机名和静态网络设置。
+ `user-data` - 此文件配置用户账户，并指定其密码、密钥对以及访问机制。默认情况下， AL2 虚拟机映像会创建一个`ec2-user`用户帐户。使用 `user-data` 配置文件设置默认用户账户的密码。

**创建 `seed.iso` 启动盘**

1. 创建一个名为 `seedconfig` 的新文件夹并导航到该文件夹。

1. 创建 `meta-data` 配置文件。

   1. 创建名为 `meta-data` 的新文件。

   1. 使用首选编辑器打开 `meta-data` 文件，并添加以下内容。

      ```
      local-hostname: vm_hostname
      # eth0 is the default network interface enabled in the image. You can configure static network settings with an entry like the following.
      network-interfaces: |
        auto eth0
        iface eth0 inet static
        address 192.168.1.10
        network 192.168.1.0
        netmask 255.255.255.0
        broadcast 192.168.1.255
        gateway 192.168.1.254
      ```

      *vm\$1hostname*替换为您选择的虚拟机主机名，并根据需要配置网络设置。

   1. 保存并关闭 `meta-data` 配置文件。

   有关示例 `meta-data` 配置文件（用于指定 VM 主机名 (`amazonlinux.onprem`) 、配置默认网络接口 (`eth0`) 并为必要的网络设备指定静态 IP 地址），请参阅[示例 Seed.iso 文件](https://cdn.amazonlinux.com/os-images/latest/)。

1. 创建 `user-data` 配置文件。

   1. 创建名为 `user-data` 的新文件。

   1. 使用首选编辑器打开 `user-data` 文件，并添加以下内容。

      ```
      #cloud-config
      #vim:syntax=yaml
      users:
      # A user by the name `ec2-user` is created in the image by default.
        - default
      chpasswd:
        list: |
          ec2-user:plain_text_password
      # In the above line, do not add any spaces after 'ec2-user:'.
      ```

      *plain\$1text\$1password*使用您为默认`ec2-user`用户帐户选择的密码替换。

   1. （可选）默认情况下，VM 每次启动时，cloud-init 都会应用网络设置。添加以下内容，以防止 cloud-init 在每次启动时都应用网络设置，并保留首次启动期间应用的网络设置。

      ```
      # NOTE: Cloud-init applies network settings on every boot by default. To retain network settings 
      # from first boot, add the following ‘write_files’ section:
      write_files:
        - path: /etc/cloud/cloud.cfg.d/80_disable_network_after_firstboot.cfg
          content: |
            # Disable network configuration after first boot
            network:
              config: disabled
      ```

   1. 保存并关闭 `user-data` 配置文件。

   还可以创建其他用户账户并指定其访问机制、密码和密钥对。有关受支持指令的更多信息，请参阅[模块参考](http://cloudinit.readthedocs.io/en/latest/topics/modules.html)。有关创建三个其他用户并为默认 `user-data` 用户账户指定自定义密码的示例 `ec2-user` 文件，请参阅[示例 Seed.iso 文件](https://cdn.amazonlinux.com/os-images/latest/)。

1. 使用 `seed.iso` 和 `meta-data` 配置文件创建 `user-data` 启动映像。

   对于 Linux，请使用类似 **genisoimage** 的工具。导航到 `seedconfig` 文件夹，并运行以下命令。

   ```
   $ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
   ```

   对于 macOS，请使用类似 **hdiutil** 的工具。从 `seedconfig` 文件夹往上导航一级，运行以下命令。

   ```
   $ hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/
   ```

## 步骤 2：下载 AL2 虚拟机镜像


我们为每个支持的 AL2 虚拟化平台提供不同的虚拟机映像。您可以查看支持的平台列表，并在 [Amazon Linux 2 虚拟机映像](https://cdn.amazonlinux.com/os-images/latest/)页面中为所选平台下载对应的 VM 映像。

## 步骤 3：启动并连接到新 VM


要启动并连接到您的新虚拟机，您必须拥有`seed.iso`启动映像（在[步骤 1](#amazon-linux-2-virtual-machine-prepare) 中创建）和 AL2 虚拟机映像（在[步骤 2](#amazon-linux-2-virtual-machine-download) 中下载）。具体步骤因您选择的 VM 平台而异。

------
#### [ VMware vSphere ]

的虚拟机 VMware 映像以 OVF 格式提供。

**使用 VMware vSphere 启动虚拟机**

1. 为 `seed.iso` 文件创建新的数据存储，或将其添加到现有的数据存储中。

1. 部署 OVF 模板，但先不启动虚拟机。

1. 在 **Navigator (导航器)** 面板中，右键单击新虚拟机，然后选择 **Edit Settings (编辑设置)**。

1. 在 **Virtual Hardware (虚拟硬件)** 选项卡上，为 **New device (新设备)** 选择 **CD/DVD Drive (CD/DVD 驱动器)**，然后选择 **Add (添加)**。

1. 对于 “**新建 CD/DVD 驱动器**”，选择 “**数据存储 ISO 文件**”。选择将 `seed.iso` 文件添加到的数据存储，浏览到并选择 `seed.iso` 文件，然后选择 **OK (确定)**。

1. 对于 “**新建 CD/DVD 驱动器**”，选择 **Connect**，然后选择 “**确定”**。

在将数据存储与虚拟机关联后，您应该能够引导该虚拟机。

------
#### [ KVM ]

**使用 KVM 引导虚拟机**

1. 打开 **Create new VM (创建新的虚拟机)** 向导。

1. 对于步骤 1，选择 **Import existing disk image (导入现有的磁盘映像)**。

1. 对于步骤 2，浏览到并选择虚拟机映像。对于 **OS type**（操作系统类型）和 **Version**（版本），分别选择 **Linux** 和 **Red Hat Enterprise Linux 7.0**。

1. 在步骤 3 中，指定 CPUs要使用的内存量和数量。

1. 对于步骤 4，输入新虚拟机的名称，然后选择 **Customize configuration before install (安装前自定义配置)**，然后选择 **Finish (完成)**。

1. 在虚拟机的 Configuration (配置) 窗口中，选择 **Add Hardware (添加硬件)**。

1. 在 **Add New Virtual Hardware (添加新的虚拟硬件)** 窗口中，选择 **Storage (存储)**。

1. 在 Storage configuration (存储配置) 中，选择 **Select or create custom storage (选择或创建自定义存储)**。对于 **Device type (设备类型)**，选择 **CDROM device (CDROM 设备)**。选择 **Manage (管理)**，选择 **Browse Local (浏览本地)**，然后导航到并选择 `seed.iso` 文件。选择 **Finish**。

1. 选择 **Begin Installation (开始安装)**。

------
#### [ Oracle VirtualBox ]

**使用 Oracle 启动虚拟机 VirtualBox**

1. 打开 Oracle VirtualBox 并选择**新建**。

1. 对于 **Name**（名称），输入虚拟机的描述性名称，对于 **Type**（类型）和 **Version**（版本），分别选择 **Linux** 和 **Red Hat (64-bit)**（Red Hat（64 位））。选择 **Continue (继续)**。

1. 对于**内存大小**，请指定要分配给虚拟机的内存容量，然后选择**继续**。

1. 对于**硬盘**，选择**使用现有虚拟硬盘文件**，浏览并打开虚拟机映像，然后选择**创建**。

1. 在启动虚拟机之前，您必须在虚拟机的虚拟光驱中加载 `seed.iso` 文件：

   1. 选择新的虚拟机，选择 **Settings (设置)**，然后选择 **Storage (存储)**。

   1. 在**存储设备**列表中，在**控制器: IDE** 下选择*空的*光驱。

   1. 在光驱的 **Attributes (属性)** 部分中，选择浏览按钮，选择 **Choose Virtual Optical Disk File (选择虚拟光盘文件)**，然后选择 `seed.iso` 文件。选择**确定**，以应用更改并关闭“设置”。

在将 `seed.iso` 文件添加到虚拟光驱后，您应该能够启动该虚拟机。

------
#### [ Microsoft Hyper-V ]

Microsoft Hyper-V 的虚拟机映像压缩为一个 zip 文件。您必须提取该 zip 文件的内容。

**使用 Microsoft Hyper-V 引导虚拟机**

1. 打开**新建虚拟机向导**。

1. 在提示您选择代时，选择 **Generation 1 (第一代)**。

1. 在提示您配置网络适配器时，为 **Connection (连接)** 选择 **External (外部)**。

1. 在提示您连接虚拟硬盘时，选择 **Use an existing virtual hard disk (使用现有的虚拟硬盘)**，选择 **Browse (浏览)**，然后导航到并选择虚拟机映像。选择 **Finish (完成)** 以创建虚拟机。

1. 右键单击新虚拟机，然后选择 **Settings (设置)**。在 **Settings (设置)** 窗口中，在 **IDE Controller 1 (IDE 控制器 1)** 下面选择 **DVD Drive (DVD 驱动器)**。

1. 对于 DVD 驱动器，选择 **Image file (映像文件)**，然后浏览到并选择 `seed.iso` 文件。

1. 应用更改并启动虚拟机。

------

在 VM 启动后，使用在 `user-data` 配置文件中定义的用户账户之一登录。在您第一次登录之后，就可以断开 `seed.iso` 启动映像与 VM 的连接。