2.3. cloud-init 模块分阶段执行
当 cloud-init
运行时,它会在三个阶段中按顺序执行 cloud.cfg
中的模块:
-
网络阶段(
cloud_init_modules
) -
配置阶段(
cloud_config_modules
) -
最终阶段(
cloud_final_modules
)
当首次在虚拟机上运行 cloud-init
时,您配置的所有模块都会在相应的阶段中运行。在后续的 cloud-init
运行中,某个模块是否在一个阶段中运行取决于单独模块中的模块频率。有些模块在每次运行 cloud-init
时都会运行,一些模块只在 cloud-init
第一次运行时运行,即使实例 ID 发生了变化。
注意
用于唯一标识实例的实例 ID。当实例 ID 发生变化时,cloud-init
将实例视为新实例。
可能的模块频率值如下:
-
Per instance
意味着模块在实例第一次引导时运行。例如,如果您克隆一个实例或从保存的镜像创建了一个新实例,指定为 per instance 的模块会再次运行。 -
Per once
表示模块只运行一次。例如,如果您克隆实例或从保存的镜像创建新实例,指定为 “Per once” 的实例不会在这些实例上再次运行。 -
Per always
表示模块在每次引导时都运行。
注意
您可在配置模块时或使用命令行覆盖模块频率的设置。