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