本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
NoCloud (seed.iso) cloud-init 在 KVM 上对亚马逊 Linux 2023 进行配置以及 VMware
本节介绍如何创建和使用seed.iso映像来配置在上运行的亚马逊 Linux 2023 KVM 或 VMware。 因为 KVM 以及 VMware 环境没有 Amazon EC2 实例元数据服务 (IMDS),则需要另一种配置 Amazon Linux 2023 的方法,而提供seed.iso图像就是其中一种方法。
seed.iso 启动映像包括启动和配置新的虚拟机所需的初始配置信息,例如网络配置、主机名和用户数据。
注意
seed.iso 映像仅包括启动虚拟机所需的配置信息,它不包括 Amazon Linux 2023 操作系统文件。
要生成 seed.iso 映像,您至少需要两个配置文件,有时则需要三个:
-
meta-data -
此文件通常包含虚拟机的主机名。
-
user-data -
此文件通常配置用户帐户及其密码,ssh 密钥对和/或访问机制。默认情况下,亚马逊 Linux 2023 KVM 和 VMware 镜像会创建一个
ec2-user用户账户。您可以使用user-data配置文件为此默认用户账户设置密码和/或 ssh 密钥。 -
network-config(可选) -
此文件通常为虚拟机提供网络配置,该配置将覆盖默认配置。默认配置是使用 DHCP 在第一个可用的网络接口上。
创建 seed.iso 磁盘映像
-
在 Linux 或 MacOS 计算机上,创建一个名为
seedconfig的新文件夹并导航到该文件夹。注意
虽然可以使用 Windows 或其他操作系统完成这些步骤,但您必须找到
mkisofs的等效工具才能完成创建seed.iso映像。 -
创建
meta-data配置文件。-
创建名为
meta-data的新文件。 -
使用您的首选编辑器打开
meta-data文件并添加以下内容,vm-hostname替换为 VM 的主机名:#cloud-config local-hostname:vm-hostname -
保存并关闭
meta-data配置文件。
-
-
创建
user-data配置文件。-
创建名为
user-data的新文件。 -
使用首选编辑器打开
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-rsassh-key# In the above line, replacessh keywith the content of your ssh public key. -
您可以选择向
user-data配置文件中添加更多用户帐户。您可以指定其他用户账户、用户访问机制、密码和密钥对。有关支持的指令的更多信息,请参阅上游
cloud-init文档。 -
保存并关闭
user-data配置文件。
-
-
(可选)创建
network-config配置文件。-
创建名为
network-config的新文件。 -
使用首选编辑器打开
network-config文件并添加以下内容,将各个 IP 地址替换为适合您的设置的地址。#cloud-config version: 2 ethernets: enp1s0: addresses: -192.168.122.161/24gateway4:192.168.122.1nameservers: addresses:192.168.122.1注意
cloud-init网络配置提供了与之匹配的机制 MAC 接口的地址,而不是指定接口名称,接口名称可能会根据虚拟机配置而变化。上游cloud-init网络配置版本 2 文档中详细描述了网络配置的这个(以及更多) cloud-init功能。 -
保存并关闭
network-config配置文件。
-
-
使用在前面步骤中创建的
meta-data、user-data和可选的network-config配置文件创建seed.iso磁盘映像。根据要在其上创建
seed.iso磁盘映像的操作系统,执行以下操作之一。-
在 Linux 系统上,使用
mkisofs或genisoimage之类的工具来创建已完成的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/
-
-
现在,可以使用虚拟 CD-ROM 驱动器将生成的
seed.iso文件附加到您的新 Amazon Linux 2023 虚拟机上,cloud-init以便在首次启动时查找并将配置应用于系统。