

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在內部部署中以虛擬機器執行 AL2
<a name="amazon-linux-2-virtual-machine"></a>

使用 AL2 虛擬機器 (VM) 映像進行內部部署開發和測試。我們為每個支援的虛擬化平台提供不同的 AL2 VM 映像。您可以在 [Amazon Linux 2 虛擬機器映像](https://cdn.amazonlinux.com/os-images/latest/)頁面中檢視支援的平台清單。

**Topics**
+ [步驟 1：準備 `seed.iso` 開機映像](#amazon-linux-2-virtual-machine-prepare)
+ [步驟 2：下載 AL2 VM 映像](#amazon-linux-2-virtual-machine-download)
+ [步驟 3：開機並連接至您的新 VM](#amazon-linux-2-virtual-machine-boot)

## 步驟 1：準備 `seed.iso` 開機映像
<a name="amazon-linux-2-virtual-machine-prepare"></a>

`seed.iso` 開機映像包括 VM 開機所需的初始組態資訊，例如網路組態、主機名稱和使用者資料。

**注意**  
`seed.iso` 開機映像僅包括 VM 開機所需的組態資訊。它不包含 AL2 作業系統檔案。

若要產生 `seed.iso` 開機映像，您需要兩個組態檔案：
+ `meta-data` – 此檔案包括 VM 的主機名稱和靜態網路設定。
+ `user-data` – 此檔案會設定使用者帳戶，並指定其密碼、金鑰對和存取機制。根據預設，AL2 VM 映像會建立`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 主機名稱取代 *vm\$1hostname*，然後視需要設定網路設定。

   1. 儲存並關閉 `meta-data` 組態檔案。

   例如，指定 VM 主機名稱 (`meta-data`) 的 `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:'.
      ```

      以您為預設的 `ec2-user` 使用者帳戶所選擇的密碼取代 *plain\$1text\$1password*。

   1. (選用) 根據預設，cloud-init 會在每次 VM 開機時套用網路設定。新增下列內容，以避免 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 VM 映像
<a name="amazon-linux-2-virtual-machine-download"></a>

我們為每個支援的虛擬化平台提供不同的 AL2 VM 映像。您可以檢視支援的平台清單，並從 [Amazon Linux 2 虛擬機器映像](https://cdn.amazonlinux.com/os-images/latest/)頁面中下載所選平台的正確 VM 映像。

## 步驟 3：開機並連接至您的新 VM
<a name="amazon-linux-2-virtual-machine-boot"></a>

若要開機並連線至新的 VM，您必須擁有`seed.iso`開機映像 （在[步驟 1 ](#amazon-linux-2-virtual-machine-prepare)中建立） 和 AL2 VM 映像 （在[步驟 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. 針對 **New CD/DVD Drive (新增 CD/DVD 光碟機)**，選擇 **Datastore ISO File (資料存放區 ISO 檔案)**。選取您新增 `seed.iso` 檔案的資料存放區，瀏覽至並選取 `seed.iso` 檔案，然後選取 **OK (確定)**。

1. 針對**新增 CD/DVD 光碟機**，選取**連線**，然後選取**確定**。

將資料存放區與虛擬機器建立關聯後，您應該可以將其開機。

------
#### [ 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，指定要使用的 RAM 數量和 CPU 數量。

1. 針對步驟 4，輸入新虛擬機器的名稱，然後選取**Customize configuration before install (安裝前自訂組態)**，然後選取 **Finish (完成)**。

1. 在虛擬機器的 Configuration (組態) 視窗中，選擇 **Add Hardware (新增硬體)**。

1. 在 **Add New Virtual Hardware (新增虛擬硬體)** 視窗中，選擇 **Storage (儲存體)**。

1. 在 Storage (儲存區) 組態中，選取 **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 並選擇 **New (新建)**。

1. 若為 **Name** (名稱)，請輸入虛擬機器的描述性名稱，並在 **Type** (類型) 和 **Version** (版本) 中分別選取 **Linux** 和 **Red Hat (64-bit)** (Red Hat (64 位元))。選擇 **Continue (繼續)**。

1. 在 **Memory size (記憶體大小)** 中，指定要配置給虛擬機器的記憶體數量，然後選擇 **Continue (繼續)**。

1. 在 **Hard disk (硬碟)** 中，選擇 **Use an existing virtual hard disk file (使用現有的虛擬硬碟檔案)**，瀏覽至虛擬機器映像並開啟，然後選擇 **Create (建立)**。

1. 在啟動虛擬機器之前，您必須將 `seed.iso` 檔案載入虛擬機器的虛擬光碟機中：

   1. 選取新的虛擬機器，選取 **Settings (設定)**，然後選取 **Storage (儲存區)**。

   1. 在 **Storage Devices (儲存裝置)** 清單中，於 **Controller: IDE (控制器: IDE)** 下，選擇 *Empty (空白)* 的光碟機。

   1. 在光碟機的 **Attributes (屬性)** 區段中，選取 瀏覽按鈕，選取 **Choose Virtual Optical Disk File (選取虛擬光碟檔案)**，然後選取 `seed.iso` 檔案。選擇 **OK (確定)** 以套用變更並關閉「Settings (設定)」。

將 `seed.iso` 檔案新增至虛擬光碟機之後，您就可以啟動虛擬機器。

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

Microsoft Hyper-V 的虛擬機器映像會壓縮成一個 Zip 檔案。您必須擷取 zip 檔案的內容。

**使用 Microsoft Hyper-V 將虛擬機器開機**

1. 開啟新的 **Virtual Machine Wizard (虛擬機器精靈)**。

1. 提示您選取世代時，請選取**第 1 代**。

1. 提示您設定網路介面卡時，針對 **Connection (連線)** 選擇 **External (外部)**。

1. 提示您連線虛擬硬碟時，請選取 **Use an existing virtual hard disk (使用現有的虛擬硬碟)**，選取 **Browse (瀏覽)**，然後瀏覽至並選取虛擬機器映像。選擇 **Finish (完成)** 來建立 VM。

1. 在新虛擬機器上按一下滑鼠右鍵，然後選擇 **Settings (設定)**。在 **Settings (設定)** 視窗中，於 **IDE Controller 1 (IDE 控制器 1)** 下，選擇 **DVD Drive (DVD 光碟機)**。

1. 針對 DVD 光碟機，選取 **Image file (映像檔)**，然後瀏覽並選取 `seed.iso` 檔案。

1. 套用變更並啟動虛擬機器。

------

在 VM 開機之後，使用您在 `user-data` 組態檔案中定義的其中一個使用者帳戶登入。第一次登入之後，您可以從 VM 中斷 `seed.iso` 開機映像的連接。