本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
磁盘映像
-
在 Linux 或 MacOS 计算机上,创建一个名为
seedconfig
的新文件夹并导航到该文件夹。注意
虽然可以使用 Windows 或其他操作系统完成这些步骤,但您必须找到
mkisofs
的等效工具才能完成创建seed.iso
映像。 -
创建
meta-data
配置文件。-
创建名为
meta-data
的新文件。 -
使用首选编辑器打开
meta-data
文件并添加以下内容,将vm-hostname
替换为虚拟机的主机名: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-rsa
ssh-key
# In the above line, replacessh key
with the content of your ssh public key. -
您可以选择向
user-data
配置文件中添加更多用户帐户。您可以指定其他用户账户、用户访问机制、密码和密钥对。有关支持的指令的更多信息,请参阅上游
cloud-init
文档。 -
保存并关闭
user-data
配置文件。
-
-
(可选)创建
network-config
配置文件。-
创建名为
network-config
的新文件。 -
使用首选编辑器打开
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
功能。 -
保存并关闭
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/
-
-
生成的
seed.iso
文件现在可以通过虚拟 CD-ROM 驱动器附加到您的新 Amazon Linux 2023 虚拟机上,供cloud-init
在首次启动时查找并将配置应用于系统。