源碼流程說明
- 程序首先判斷操作系統類型,加載對應的模塊
- 加載服務,服務共分為四種:
'cloudbaseinit.metadata.services.httpservice.HttpService',
'cloudbaseinit.metadata.services.configdrive.ConfigDriveService',
'cloudbaseinit.metadata.services.ec2service.EC2Service',
'cloudbaseinit.metadata.services.maasservice.MaaSHttpService'
目前openstack中我們會用第一種,使用http獲取openstack的元數據服務
- 加載插件,插件共分為:
'cloudbaseinit.plugins.windows.mtu.MTUPlugin',
'cloudbaseinit.plugins.windows.ntpclient.NTPClientPlugin',
'cloudbaseinit.plugins.windows.sethostname.SetHostNamePlugin',
'cloudbaseinit.plugins.windows.createuser.CreateUserPlugin',
'cloudbaseinit.plugins.windows.networkconfig.NetworkConfigPlugin',
'cloudbaseinit.plugins.windows.licensing.WindowsLicensingPlugin',
'cloudbaseinit.plugins.windows.sshpublickeys.'
'SetUserSSHPublicKeysPlugin',
'cloudbaseinit.plugins.windows.extendvolumes.ExtendVolumesPlugin',
'cloudbaseinit.plugins.windows.userdata.UserDataPlugin',
'cloudbaseinit.plugins.windows.setuserpassword.'
'SetUserPasswordPlugin',
'cloudbaseinit.plugins.windows.winrmlistener.'
'ConfigWinRMListenerPlugin',
'cloudbaseinit.plugins.windows.winrmcertificateauth.'
'ConfigWinRMCertificateAuthPlugin',
'cloudbaseinit.plugins.windows.localscripts.LocalScriptsPlugin',
上面windows中就是使用localscript插件
- 執行插件
- 根據配置重啟機器
PS
目前主要功能有
創建新用戶
修改用戶密碼
添加用戶到指定用戶組
獲取用戶home目錄
設置主機名
獲取網卡信息
獲取DHCP信息
設置NTP
設置靜態IP
判斷服務是否存在
獲取服務狀態
設置服務啟動模式
啟動服務
關閉服務
獲取默認網關
獲取CD驅動
獲取物理磁盤
創建防火牆規則
刪除防火牆規則
