NoCloud (seed.iso) cloud-init 在 KVM 和 VMware 上为亚马逊 Linux 2023 进行配置 - Amazon Linux 2023

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

NoCloud (seed.iso) cloud-init 在 KVM 和 VMware 上为亚马逊 Linux 2023 进行配置

本节介绍如何创建和使用seed.iso映像来配置在KVM或上运行的 Amazon Linux 2023 VMware。由于KVM而且VMware环境中没有 Amazon EC2 实例元数据服务 (IMDS),因此需要另一种配置亚马逊 Linux 2023 的方法,而提供seed.iso图像就是其中一种方法。

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

注意

seed.iso 映像仅包括启动虚拟机所需的配置信息,它不包括 Amazon Linux 2023 操作系统文件。

要生成 seed.iso 映像,您至少需要两个配置文件,有时则需要三个:

meta-data

此文件通常包含虚拟机的主机名。

user-data

此文件通常配置用户账户、用户密码、ssh 密钥对和/或访问机制。默认情况下,Amazon Linux 2023 KVM 和 VMware 映像会创建一个 ec2-user 用户账户。您可以使用 user-data 配置文件为此默认用户账户设置密码和/或 ssh 密钥。

network-config(可选)

此文件通常为虚拟机提供网络配置,该配置将覆盖默认配置。默认配置是在第一个可用网络接口上使用 DHCP。

创建 seed.iso 磁盘映像
  1. 在 Linux 或 MacOS 计算机上,创建一个名为 seedconfig 的新文件夹并导航到该文件夹。

    注意

    虽然可以使用 Windows 或其他操作系统完成这些步骤,但您必须找到 mkisofs 的等效工具才能完成创建 seed.iso 映像。

  2. 创建 meta-data 配置文件。

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

    2. 使用首选编辑器打开 meta-data 文件并添加以下内容,将 vm-hostname 替换为虚拟机的主机名:

      local-hostname: vm-hostname
    3. 保存并关闭 meta-data 配置文件。

  3. 创建 user-data 配置文件。

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

    2. 使用首选编辑器打开 user-data 文件并添加以下内容,进行必要的替换:

      #cloud-config #vim:syntax=yaml users: # A user by the name 'ec2-user' is created in the image by default. - default - name: ec2-user ssh_authorized_keys: - ssh-rsa ssh-key # In the above line, replace ssh key with the content of your ssh public key.
    3. 您可以选择向user-data配置文件中添加更多用户帐户。

      您可以指定其他用户账户、用户访问机制、密码和密钥对。有关支持的指令的更多信息,请参阅上游 cloud-init 文档

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

  4. (可选)创建 network-config 配置文件。

    1. 创建名为 network-config 的新文件。

    2. 使用首选编辑器打开 network-config 文件并添加以下内容,将各个 IP 地址替换为适合您的设置的地址。

      version: 2 ethernets: enp1s0: addresses: - 192.168.122.161/24 gateway4: 192.168.122.1 nameservers: addresses: 192.168.122.1
      注意

      cloud-init 网络配置提供了与接口的 MAC 地址匹配的机制,而不是指定接口名称,接口名称可能会根据虚拟机配置而变化。上游 cloud-init 网络配置版本 2 文档中详细描述了网络配置的这个(以及更多)cloud-init 功能。

    3. 保存并关闭 network-config 配置文件。

  5. 使用在前面步骤中创建的 meta-datauser-data 和可选的 network-config 配置文件创建 seed.iso 磁盘映像。

    根据要在其上创建 seed.iso 磁盘映像的操作系统,执行以下操作之一。

    • 在 Linux 系统上,使用 mkisofsgenisoimage 之类的工具来创建已完成的 seed.iso 文件。导航到 seedconfig 文件夹,并运行以下命令:

      $ mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data
    • 如果您使用 network-config,则将其包含在 mkisofs 调用中:

      $ mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data network-config
    • 在 macOS 系统上,您可以使用 hdiutil 之类的工具来生成已完成的 seed.iso 文件。由于 hdiutil 采用路径名而不是文件列表,因此无论是否创建了 network-config 配置文件,都可以使用相同的调用。

      $ hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/
  6. 生成的 seed.iso 文件现在可以通过虚拟 CD-ROM 驱动器附加到您的新 Amazon Linux 2023 虚拟机上,供 cloud-init 在首次启动时查找并将配置应用于系统。