cloud-init五个阶段:generator、local、init(network)、config、final
1.generator阶段
决定cloud-init是否启动,顺序启动剩余四个阶段服务,按照时间顺序分为:cloud-init-local.service, cloud-init.service, cloud-config.service, cloud-final.service。
cloud-init-local阶段主要是运行本地的一些初始化脚本。cloud-init, cloud-config, cloud-final阶段分别执行配置文件中名为cloud_init_modules、cloud_config_modules、cloud_final_modules下的所有模块,如果模块列表为空,则什么都不运行。
各个module的文件放于/usr/lib/python2.7/site-packages/cloudinit/config/下。
2.local阶段
启动cloud-init-local.service,相当于执行cloud-init init --local命令
由官网介绍可知:
local阶段的主要任务是查找各种数据源并进行网络配置。网络配置来源有:
- 数据源(如openstack的config drive,metadata Restful service)
- fallback: fallback网络相当于dhcp on eth0
- none.网络配置可以通过在/etc/cloud/cloud.cfg中配置进行禁止
3.network阶段
启动cloud-init.service,相当于执行cloud-init init命令。
此阶段运行配置文件/etc/cloud/cloud.cfg中名为cloud_init_modules下的所有module。
4. config阶段
启动cloud-config.service,相当于执行cloud-init mudules --mode config命令。
此阶段运行配置文件/etc/cloud/cloud.cfg中名为cloud_config_modules下的所有module。
5.final阶段
启动cloud-final.service,相当于执行cloud-init mudules --mode final命令。
此阶段运行配置文件/etc/cloud/cloud.cfg中名为cloud_final_modules下的所有module。
参考:
https://blog.csdn.net/Allison_ywt/article/details/51566795#_Toc26897
http://910216.com/archives/cloudinit-startprocess.html
https://cloudinit.readthedocs.io/en/0.7.9/topics/boot.html