本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
定制 cloud-init
cloud-init 软件包是一个开源应用程序,可在云计算环境中引导 Linux 映像。有关更多信息,请参阅 cloud-init 文档
AL2023 包含自定义版本的 cloud-init。使用 cloud-init,您可以指定在引导时您的实例会发生什么情况。
启动实例时,您可以使用用户数据字段将操作传递给。cloud-init这意味着,您可以在许多使用案例中使用通用的 Amazon 机器映像 (AMI),并在启动实例时动态配置它们。AL2023 还使用 cloud-init 来配置 ec2-user
账户。
AL2023 使用 /etc/cloud/cloud.cfg.d
和 /etc/cloud/cloud.cfg
中的 cloud-init 操作。您可以在 /etc/cloud/cloud.cfg.d
目录中创建自己的 cloud-init 操作文件。Cloud-init 按字典顺序读取此目录中的所有文件。时间较晚的文件覆盖时间较早的文件中的值。当 cloud-init 启动一个实例时,cloud-init 软件包会执行以下配置任务:
-
设置默认区域
-
设置主机名
-
解析和处理用户数据
-
生成主机私有 SSH 密钥
-
将用户的公有 SSH 密钥添加到
.ssh/authorized_keys
以便于登录和管理 -
准备存储库以进行软件包管理
-
处理用户数据中定义的软件包操作
-
运行用户数据中的用户脚本
-
装载实例存储卷(如果适用)
-
默认情况下,如果
ephemeral0
实例存储卷存在且包含一个有效文件系统,则说明实例存储卷已装载在/media/ephemeral0
。否则,说明未装载。 -
默认情况下,对于
m1.small
和c1.medium
实例类型,将装载与实例关联的所有交换卷。 -
您可以使用以下 cloud-init 指令覆盖默认实例存储卷装载:
#cloud-config mounts: - [ ephemeral0 ]
有关如何加强对装载的控制,请参阅 cloud-init 文档中的装载
。 -
当一个实例启动时,支持 TRIM 的实例存储卷不会被格式化。要装载实例存储卷,您必须对实例存储卷进行分区和格式化。
有关更多信息,请参阅 Amazon EC2 用户指南中的实例存储卷 TRIM 支持。
-
当您启动实例时,可以使用
disk_setup
模块对实例存储卷进行分区和格式化。有关更多信息,请参阅 cloud-init 文档中的磁盘设置
。
-
有关通过 SELinux 使用 cloud-init 的信息,请参阅使用 cloud-init 启用 enforcing 模式。
有关 cloud-init 用户数据格式的信息,请参阅 cloud-init 文档中的用户数据格式